我想根据值(Model.CompanyNameEnabled
)启用或禁用文本框。
以下代码无效。请纠正。
@{
string displayMode = (Model.CompanyNameEnabled) ? "" : "disabled = disabled";
@Html.TextBox("CompanyName", "", new { displayMode })
}
答案 0 :(得分:34)
@{
object displayMode = (Model.CompanyNameEnabled) ? null : new {disabled = "disabled" };
@Html.TextBox("CompanyName", "", displayMode)
}
您应该将htmlAttribute作为匿名对象传递,其属性名称为= html属性名称,属性值=属性值。你的错误是你传递的是字符串而不是名字=值对
答案 1 :(得分:7)
<input id="textbox1" type="text" @{@((Model.CompanyNameEnabled) ? null : new { disabled = "disabled" })}; />
Haven没有对它进行测试,但是应该可以使用
答案 2 :(得分:2)
一种简单的方法:
@Html.TextBoxFor(x => x.Phone, new { disabled = "disabled", @class = "form-control" })
答案 3 :(得分:1)
正如本主题中已经提到的,建议的答案不再适用于MVC5。对于这个问题,实际上是一个简单的两步解决方案。
@Html.TextBox("CompanyName", "", new { htmlAttributes = new { @class = "form-control switch-disable" } })
<script>
$(document).ready(() => {
if(@Model.CompanyNameEnabled)
{
$('.switch-disable').attr("disabled", false);
}else{
$('.switch-disable').attr("disabled", true);
}
});
</script>