У меня есть особая проблема с частичным представлением и моделью связанного представления.
Вот как выглядит соответствующая функция в контроллере:
using MyProject.ViewModels;
[ChildActionOnly]
public PartialViewResult ShowMyView(int id)
{
return PartialView(new MyModel() { ModelID = id });
}
И тогда у меня есть модель вида, определенная следующим образом:
namespace MyProject.ViewModels
{
[Bind(Exclude = "ModelID")]
public class MyModel: IValidatableObject
{
public MyModel()
{
Count = 1;
}
[Required]
[HiddenInput(DisplayValue = false)]
public int ModelID { get; set; }
[Required]
[Range(1, 9999)]
public int Count { get; set; }
public IEnumerable<ValidationResult> Validate(
ValidationContext validationContext)
{
if (ModelID <= 0)
yield return new ValidationResult("Model ID missing",
new[] { "ModelID" });
if (Count <= 0)
yield return new ValidationResult("Count cannot be zero",
new[] { "Count" });
}
}
}
У меня есть представление, определенное в Views / Shared, с именем ShowMyView.cshtml.
Странно то, что когда я определяю это как
@inherits WebViewPage
работает нормально (показывает вид), но когда я определяю реальную модель, также
@inherits WebViewPage<MyProject.ViewModels.MyModel>
он не будет отображать представление и выдаст мне ошибку, что представление не может быть найдено (со списком местоположений, в которых оно просматривалось, включая путь Views / Shared / ShowMyView.cshtml, который существует).
Это, кажется, происходит для любого класса модели, который я использую в проекте. Есть какие-нибудь подсказки, что я здесь делаю не так?