html助手的条件不起作用

时间:2014-12-10 02:00:19

标签: asp.net-mvc html5

我希望将disabled属性添加到基于条件

的文本框中
 @Html.TextBoxFor(m => m.kidsNumber, new { (Model.kidsDropDown != "2") ? "@disabled" : ""})

2 个答案:

答案 0 :(得分:1)

使用

@Html.TextBoxFor(m => m.kidsNumber, Model.kidsDropDown != "2" ? new {disabled = "disabled"} : null )

另请注意,如果您需要添加多个属性,则需要采用格式(属性转换为object

的格式)
@Html.TextBoxFor(m => m.kidsNumber, Model.kidsDropDown != "2" ? (object)new { @disabled = "disabled", @class="form-control" } : (object)new { @class="form-control" })

如果您有多个使用相同属性集的文本框,可以将这些属性分配给视图中的变量

@{
  object number = new { @type = "number", @class="form-control" };
  object disabledNumber = new { @disabled = "disabled", @class="form-control" };
}

,格式为

@Html.TextBoxFor(m => m.kidsNumber, Model.kidsDropDown != "2" ? disabledNumber : number)
@Html.TextBoxFor(m => m.anotherProperty, AnotherCondition ? disabledNumber : number)
.....

答案 1 :(得分:-1)

您尚未说明要设置的属性::

您的代码没有属性,您应该使用 请改用readonly,因为已禁用的字段未在表单提交

上发布
@Html.TextBoxFor(m => m.kidsNumber, new { (Model.kidsDropDown != "2") ? "@disabled" : ""})

对于Disabled属性Use ::

@Html.TextBoxFor(m => m.kidsNumber, Model.kidsDropDown != "2" ? new {disabled = "disabled"} : null )

对于readonly使用类似::

的东西
@Html.TextBoxFor(m => m.kidsNumber, new { @readonly= (Model.kidsDropDown != "2" ? "readonly" : "")})