jg,
Как ни странно, я должен был найти подобную статью, когда искал решение, подобное этому.у меня есть метод extn, который идет:
public static IList<SelectListItem> ToSelectItemList<T>(
this IEnumerable<T> list,
Func<T, string> textSelector,
Func<T, string> valueSelector, T selected) where T : class
{
var results = new List<SelectListItem>();
if (list != null)
{
results.AddRange(
list.Select(item => new SelectListItem
{
Text = textSelector.Invoke(item),
Value = valueSelector.Invoke(item),
Selected = selected != null ? selected.Equals(item) : false
}));
}
return results;
}
и вызывается как:
<%: Html.DropDownList("Base.EntityRootID", Model.EntityRootList.ToSelectItemList(foo => foo.EntityName, foo => foo.ID.ToString(), Model.Base.EntityRoot))%>
как странно.Мне действительно нравится этот метод, так как он является общим и использует сам объект для сравнения выбранного элемента. Это означает, что вы не можете сравнивать идентификаторы и т. д.*