【问题标题】:In asp.net-mvc, How can I insert a class name from my view model for a html.dropdownlistfor在 asp.net-mvc 中,如何从视图模型中为 html.dropdownlistfor 插入类名
【发布时间】:2015-03-07 17:23:50
【问题描述】:

我认为有以下代码:

<%= Html.DropDownListFor(r=>r.Id, Model.MyList, new { @class = "Dropdown hidden" })%>

但现在我只想在某些情况下分配“隐藏”类,所以我想从我的 ViewModel 中传递它以添加或忽略它。

为了解决这个问题,我在视图模型中创建了一个名为 HiddenConditional

的属性
  public string HiddenConditional
  {
      get
      {
          return IfCondition() ? "hidden" : string.empty;
      }
  }

但我想不出将其放入类属性的正确语法。我需要类似的东西:

<%= Html.DropDownListFor(r=>r.Id, Model.MyList, new { @class = "Dropdown <%=Model.HiddenConditional%>" })%>

【问题讨论】:

  • 可能我想的太简单了,但是你不能在ViewModel中设置一个属性为true或者false,然后在DropDownListFor中,这样做:&lt;%= Html.DropDownListFor(r=&gt;r.Id, Model.MyList, new { @class = "Dropdown " + (Model.MyListIsHidden ? " hidden" : "") })%&gt;

标签: c# asp.net asp.net-mvc viewmodel html.dropdownlistfor


【解决方案1】:

你需要这样做:

<%= Html.DropDownListFor(r=>r.Id, Model.MyList, 
               new { @class = "Dropdown " + Model.HiddenConditional })%>

【讨论】:

  • @leora 对不起,我刚刚错过了条件,试试上面的。
【解决方案2】:

您可能会被绑定到在 ViewModel 中使用 HiddenConditional 的解决方案,但我认为将类名保留在 View 中并在 ViewModel 中简单地使用布尔值会更好。所以它看起来像这样:

视图模型

public bool MyListIsHidden { get; set; }

查看

<%= Html.DropDownListFor(r=>r.Id, Model.MyList, new { @class = "Dropdown" + (Model.MyListIsHidden ? " hidden" : "") })%>

【讨论】:

    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2011-10-24
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多