如何将 Bootstrap 样式 class 应用到 HTML DropDownFor 并结合默认值
How do I apply BOTH Bootstrap styling class to an HTML DropDownFor combined with a default value
似乎没有支持此功能的重载。我目前正在使用 Overload 2
DropDownListFor(HtmlHelper, Expression>, IEnumerable, IDictionary)
这是我的电话
@Html.DropDownListFor(m => m.BandLeaderId, Model.BandLeaderList, Model.BandLeaderId)
我要补充:
new { @class = "form-control" }
第 3 次重载和第 6 次重载将采用 this 对象,但随后它们不包括 this、IDictionary 以设置默认值。
事后我是否必须使用 javascript 来设置样式?
根据斯蒂芬的评论编辑:
改为使用此表单:
@Html.DropDownListFor(m => m.BandLeaderId, Model.BandLeaderList, new { @class = "form-control" })
由于您的控件绑定到 BandLeaderId
,如 m => m.BandLeaderId
,您在模型中设置的任何值都是此控件将使用的值。
我总是忘记 DropDownListFor
的这种细微差别,直到我尝试在我自己的项目中使用它,然后记住它并不像文档可能让您相信的那样工作。谢谢斯蒂芬!
原回答如下
您可能想要的重载是 this one:
public static MvcHtmlString DropDownListFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
IEnumerable<SelectListItem> selectList,
object htmlAttributes
)
但是请注意,您要为 SelectList
提供默认值。如:
public SelectList(
IEnumerable items,
string dataValueField,
string dataTextField,
object selectedValue
)
将其应用于您的情况:
@Html.DropDownListFor(m => m.BandLeaderId,
new SelectList(Model.BandLeaderList, "BandLeaderId", "BandLeaderName", Model.BandLeaderId),
new { @class = "form-control" })
我这里的假设是您的 Model.BandLeaderList
包含一个 IEnumerable
,其属性为 BandLeaderId
和 BandLeaderName
。如果 BandLeaderList
是 Dictionary
对象,请替换 Key
和 Value
。
似乎没有支持此功能的重载。我目前正在使用 Overload 2
DropDownListFor(HtmlHelper, Expression>, IEnumerable, IDictionary)
这是我的电话
@Html.DropDownListFor(m => m.BandLeaderId, Model.BandLeaderList, Model.BandLeaderId)
我要补充:
new { @class = "form-control" }
第 3 次重载和第 6 次重载将采用 this 对象,但随后它们不包括 this、IDictionary 以设置默认值。
事后我是否必须使用 javascript 来设置样式?
根据斯蒂芬的评论编辑:
改为使用此表单:
@Html.DropDownListFor(m => m.BandLeaderId, Model.BandLeaderList, new { @class = "form-control" })
由于您的控件绑定到 BandLeaderId
,如 m => m.BandLeaderId
,您在模型中设置的任何值都是此控件将使用的值。
我总是忘记 DropDownListFor
的这种细微差别,直到我尝试在我自己的项目中使用它,然后记住它并不像文档可能让您相信的那样工作。谢谢斯蒂芬!
原回答如下
您可能想要的重载是 this one:
public static MvcHtmlString DropDownListFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
IEnumerable<SelectListItem> selectList,
object htmlAttributes
)
但是请注意,您要为 SelectList
提供默认值。如:
public SelectList(
IEnumerable items,
string dataValueField,
string dataTextField,
object selectedValue
)
将其应用于您的情况:
@Html.DropDownListFor(m => m.BandLeaderId,
new SelectList(Model.BandLeaderList, "BandLeaderId", "BandLeaderName", Model.BandLeaderId),
new { @class = "form-control" })
我这里的假设是您的 Model.BandLeaderList
包含一个 IEnumerable
,其属性为 BandLeaderId
和 BandLeaderName
。如果 BandLeaderList
是 Dictionary
对象,请替换 Key
和 Value
。