在 asp.net-mvc 中,如何从我的视图模型中为 html.dropdownlistfor 插入一个 class 名称
In asp.net-mvc, How can I insert a class name from my view model for a html.dropdownlistfor
我认为有以下代码:
<%= Html.DropDownListFor(r=>r.Id, Model.MyList, new { @class = "Dropdown hidden" })%>
但现在我只想在某些情况下分配 class "hidden" 所以我想从我的 ViewModel 中传递它以添加 class 或将其保留.
为了解决这个问题,我在名为 HiddenConditional
的视图模型中创建了一个 属性
public string HiddenConditional
{
get
{
return IfCondition() ? "hidden" : string.empty;
}
}
但我想不出将其放入 class 属性的正确语法。我需要这样的东西:
<%= Html.DropDownListFor(r=>r.Id, Model.MyList, new { @class = "Dropdown <%=Model.HiddenConditional%>" })%>
您需要这样做:
<%= Html.DropDownListFor(r=>r.Id, Model.MyList,
new { @class = "Dropdown " + Model.HiddenConditional })%>
您可能与在 ViewModel 中使用 HiddenConditional
的解决方案有关,但我认为最好在 View 中保留 class 名称并在 ViewModel 中简单地使用布尔值.所以它看起来像这样:
ViewModel
public bool MyListIsHidden { get; set; }
查看
<%= Html.DropDownListFor(r=>r.Id, Model.MyList, new { @class = "Dropdown" + (Model.MyListIsHidden ? " hidden" : "") })%>
我认为有以下代码:
<%= Html.DropDownListFor(r=>r.Id, Model.MyList, new { @class = "Dropdown hidden" })%>
但现在我只想在某些情况下分配 class "hidden" 所以我想从我的 ViewModel 中传递它以添加 class 或将其保留.
为了解决这个问题,我在名为 HiddenConditional
的视图模型中创建了一个 属性 public string HiddenConditional
{
get
{
return IfCondition() ? "hidden" : string.empty;
}
}
但我想不出将其放入 class 属性的正确语法。我需要这样的东西:
<%= Html.DropDownListFor(r=>r.Id, Model.MyList, new { @class = "Dropdown <%=Model.HiddenConditional%>" })%>
您需要这样做:
<%= Html.DropDownListFor(r=>r.Id, Model.MyList,
new { @class = "Dropdown " + Model.HiddenConditional })%>
您可能与在 ViewModel 中使用 HiddenConditional
的解决方案有关,但我认为最好在 View 中保留 class 名称并在 ViewModel 中简单地使用布尔值.所以它看起来像这样:
ViewModel
public bool MyListIsHidden { get; set; }
查看
<%= Html.DropDownListFor(r=>r.Id, Model.MyList, new { @class = "Dropdown" + (Model.MyListIsHidden ? " hidden" : "") })%>