У меня есть модель представления, которая отображает несколько форм на одной странице. Эта модель представления содержит 'sub-view-models' для каждой формы, которая будет отображаться. Каждая форма имеет свой собственный PartialView.
Все эти формы имеют набор свойств (контактную информацию), но каждая форма имеет отдельный набор дополнительных свойств. Поэтому я подумал, что каждый из этих классов форм имеет смысл наследовать от базового класса. Однако, когда я пытаюсь получить доступ к URL, я получаю следующую ошибку.
Элемент модели, переданный в словарь, имеет тип
'MyProject.ViewModels.JobForm', но этот словарь
требуется типовой элемент типа
'MyProject.ViewModels.NightShiftForm'.
Главный вид
<%@ Control Language="C#"
Inherits="ViewUserControl<MyProject.ViewModels.JobsViewModel>" %>
<%: Html.Partial("_NightShiftForm", Model.NightShiftForm) %>
<%: Html.Partial("_DayShiftForm", Model.DayShiftForm) %>
Частичное представление для '_NightShiftForm'
<%@ Control Language="C#"
Inherits="ViewUserControl<MyProject.ViewModels.NightShiftForm>" %>
Просмотр классов моделей и форм
public class JobsViewModel {
public NightShiftForm NightShiftForm { get; set; }
public DayShiftForm DayShiftForm { get; set; }
}
public class JobForm {
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class DayShiftForm : JobForm {
public string PreferredCoffeeBrand { get; set; }
public bool IsMorningPerson { get; set; }
}
public class NightShiftForm : JobForm {
public string PreferredLocation { get; set; }
public string PreferredNights { get; set; }
}
Кто-нибудь знает, почему это может происходить?