У меня есть вид, который наследуется от System.Web.Mvc.ViewPage<P>
.
Тип P имеет свойство типа C
, т. Е. P
может быть:
class P
{
public string Name { get; set; }
public C OtherData { get; set; }
}
Представление, о котором идет речь, предназначено для создания нового P
, и поэтому я хочу создать список DropDown всех доступных C
.
Таким образом, раскрывающийся список может быть:
Я попытался создать List<SelectListItem>
объект для C
в моем контроллере, а затем передать их в представление с помощью ViewData
, но это не работает, так как при попытке отправки я получаю исключение :
System.InvalidOperationException: There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key C.
Итак, мой вопрос, как мне создать список C
объектов для отображения в моем представлении, который наследуется от типа P
. Список объектов извлекается из базы данных, и поэтому я не могу просто жестко закодировать параметры в представлении.
Нужно ли создавать другой тип модели, который объединяет два типа вместе?