如何在剃刀视图中编程启用/禁用控件

时间:2015-05-04 17:15:47

标签: c# asp.net-mvc

我需要根据条件启用/禁用视图中的某些控件。我尝试使用此链接here中的答案,但它在我的情况下不起作用。目前我正在使用(伪)代码,如下所示,这有效,但使用它是疯了,因为有很多这样的条目。我需要像here

中的解决方案
@{ if (Model.ChargeCost == true)
 {
   @Html.TextBoxFor(m => m.Cost, new { @id="myId", @class = "form-control" })
 }
  else
 {
   @Html.TextBoxFor(m => m.Cost, new { @id = "myId", @class = "form-control", disabled = "disabled" })
}

更新:我为误解而道歉,但我作为一个例子的代码完美无缺。我需要的是有人真正深入了解MVC5和C#,可以优化这个可能的代码,因为我在这个视图中有很多条件......

2 个答案:

答案 0 :(得分:0)

你必须这样:

@Html.TextBoxFor(m => m.Cost, new { @id = "myId", @class = "form-control", disabled = "disabled" })

Disabled是一个属性,而不是css属性。

答案 1 :(得分:0)

在viewmodel中,您应该创建一个控制它的属性:

public string controlDisabled { get; set; }

在Action中,根据您的情况,将其设置为"禁用"

viewmodel.controlDisabled = condition ? "disabled" : "false";

并且在视野中:

@Html.TextBoxFor(m => m.Cost, new { @id = "myId", @class = "form-control", @disabled = Model.controlDisabled })