-2
我想扩展DropDownList以接受任何类型的列表。用列表扩展Html.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);
}
如何重构这个代码,以便它可以用于所有类型的像列表(车辆类型,让模特,一年..等)
你可以有参数'IEnumerable的项目,串dataValueField,串dataTextField'并在该方法中使用'新的SelectList(项目,dataValueField,dataTextField)'建立'的IEnumerable'。注意:没有必要设置'SelectListItem'的'Selected'属性(它被'SelectExtensions.DropDownListFor'忽略)。 –
谢谢。我的观点是,我希望我的帮手使用所有类型的列表而不仅仅是枚举 – YosrJ
这正是添加这些参数所要做的。 –