我目前正在开发一个具有创建和编辑视图的MVC应用程序。两个视图在UI方面非常相似。在每个页面上,我有大约5-7个下拉列表,我使用以下扩展方法填充在控制器中。
$.keys[0].n
现在,在编辑视图中,我想显示相同的下拉菜单,但这一次将所选值设置为true,无论用户在创建视图上选择了什么。这就是我目前正在做的事情
public static IEnumerable<SelectListItem> ToSelectListItems<T>(this IEnumerable<T> items, Func<T, string> textSelector, Func<T, string> valueSelector)
{
return items.OrderBy(item => textSelector(item))
.Select(item =>
new SelectListItem
{
Text = textSelector(item),
Value = valueSelector(item)
});
}
这种方法有效,但我认为有更好的方法可以做到这一点,或者我坚持这个
答案 0 :(得分:1)
我设法解决了一些问题。我为Workbooks.OpenText Filename:=FileName:=strPath & "thisFile.txt", DataType:=xlDelimited, Semicolon:=True, DecimalSeparator:=",", ThousandsSeparator:="."
方法创建了一个重载,如下所示:
ToSelectListItems
现在我能做到:
public static IEnumerable<SelectListItem> ToSelectListItems<T>(this List<T> items, Func<T, string> nameSelector, Func<T, string> valueSelector, Func<T, bool> selecter)
{
return items
.OrderBy(item => nameSelector(item))
.Select(item =>
new SelectListItem
{
Selected = selecter(item),
Text = nameSelector(item),
Value = valueSelector(item)
});
}