我得到了一个定义为IEnumerable< MyViewModel>的模型.我试图用它来创建一个选择列表(Html.SelectListFor).但我无法弄清楚如何做到这一点.这让我看一下普通的Html.SelectList方法.
因为它想要一个IEnumerable< SelectListITem>我不希望在我的控制器或逻辑中添加视图特定逻辑在我的视图中我最终创建了以下扩展方法:
public static class ExtensionMethods
{
public static IEnumerable<SelectListItem> ToSelectList<T>(this IEnumerable<T> items, Func<T, string> valueSelector, Func<T, string> textSelector)
{
return items.Select(item => new SelectListItem
{
Text = textSelector(item),
Value = valueSelector(item)
}).ToList();
}
}
我用它作为:
@Html.DropDownList("trainid", Model.ToSelectList(item => item.Id, item => item.Name));
这似乎不是最佳解决方案.我该怎么办?
解决方法:
猜猜答案是我已经在使用最好的解决方案了.