我需要根据条件启用/禁用视图中的某些控件。我尝试使用此链接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#,可以优化这个可能的代码,因为我在这个视图中有很多条件......
答案 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 })