-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
這正是添加這些參數所要做的。 –