Кажется, что в рекомендуемых лучших практиках есть разногласия, когда дело доходит до включения источника данных списка выбора в модель представления. Например, во многих блогах с рекомендациями рекомендуется что-то вроде этого:
ViewModel:
public class InvoiceViewModel
{
[UIHint("SelectInvoiceType")]
public int idInvoiceType { get; set; }
/* snip */
/* I'll use this in the view to generate a SelectList */
public List<invoicetype> InvoiceTypes { get; set; }
}
Но тогда, когда мы доберемся до шаблона редактора, объект Model будет просто int, без знания модели представления:
SelectInvoiceType.cshtml
@model int
@{
Layout = "~/Views/Shared/_EditorFormItem.cshtml";
List<SelectListItem> selList = /* nothing to say here, really */;
}
@section DataContent {
@Html.DropDownListFor(m => Model, selList, null)
}
Итак, если я что-то упустил, эти две "лучшие практики" - шаблонные помощники вида и строго типизированные данные списка в модели представления - просто нельзя использовать вместе. У вас есть , чтобы прибегнуть к вставке данных списка в ViewBag. Звук примерно так?
Извините, что звучу недоверчиво, но мне кажется, что я что-то упускаю.