在这里我使用Enum绑定下拉列表。(绑定成功)。但是我想为它添加css类,但是在这里它需要添加,
" DropDownListFor"<" TModel,TProperty">"为css类名取另一个参数的方法。"
我的下拉列表
@Html.DropDownListFor(m => m.ReportType)
但我需要在MyDropdownlist方法中接受以下内容,
@Html.DropDownListFor(m => m.ReportType, new {@class="form-control"})
帮助程序类(下拉列表方法)
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression)
where TModel : class
{
TProperty value = htmlHelper.ViewData.Model == null
? default(TProperty)
: expression.Compile()(htmlHelper.ViewData.Model);
string selected = value == null ? String.Empty : value.ToString();
return htmlHelper.DropDownListFor(expression, createSelectList(expression.ReturnType, selected));
}
我从This Link获得此内容。在该文章的评论部分,有人要求提出完全相同的问题。
答案 0 :(得分:0)
我认为您需要将参数添加为object htmlAttributes
并使用htmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)
创建下拉列表。
您的完整帮助程序代码将变为:
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression, object htmlAttributes )
where TModel : class
{
TProperty value = htmlHelper.ViewData.Model == null
? default(TProperty)
: expression.Compile()(htmlHelper.ViewData.Model);
string selected = value == null ? String.Empty : value.ToString();
return htmlHelper.DropDownListFor(expression, createSelectList(expression.ReturnType, selected), null, htmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}
我发现在像您这样的情况下,最好的解决方案是查看实际源代码对SelectExtensions
的影响。