我想扩展DropDownList以接受任何类型的列表。
我的代码是枚举。我想把它用于任何列表,而不仅仅是枚举。
public static MvcHtmlString DropDownListFor<TModel, TProperty, TEnum>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
TEnum selectedValue)
{
var values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();
var items = from value in values
select new SelectListItem()
{
Text = value.ToString(),
Value = value.ToString(),
Selected = value.Equals(selectedValue)
};
return SelectExtensions.DropDownListFor(htmlHelper, expression, items);
}
如何重构此代码,以便它可以用于所有类型的列表,如(车辆类型,制作模型,年份..等)
答案 0 :(得分:0)
我使用以下代码使代码正常工作:
public static MvcHtmlString DropDownListFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
List<dynamic> selectedValue)
{
var items = from value in selectedValue
select new SelectListItem()
{
Text = value.ToString(),
Value = value.ToString()
};
return htmlHelper.DropDownListFor(expression, items);
}