我想根据值(Model.CompanyNameEnabled
)启用或禁用文本框。
下面的代码不起作用。请修改。
@{
string displayMode = (Model.CompanyNameEnabled) ? "" : "disabled = disabled";
@Html.TextBox("CompanyName", "", new { displayMode })
}
我想根据值(Model.CompanyNameEnabled
)启用或禁用文本框。
下面的代码不起作用。请修改。
@{
string displayMode = (Model.CompanyNameEnabled) ? "" : "disabled = disabled";
@Html.TextBox("CompanyName", "", new { displayMode })
}
@{
object displayMode = (Model.CompanyNameEnabled) ? null : new {disabled = "disabled" };
@Html.TextBox("CompanyName", "", displayMode)
}
你应该使用匿名对象作为htmlAttribute参数,属性名称应为html属性名称,属性值应为属性值。你的错误是传递了字符串而不是name=value对。<input id="textbox1" type="text" @{@((Model.CompanyNameEnabled) ? null : new { disabled = "disabled" })}; />
尚未测试,但应该有效。
@Html.TextBoxFor(x => x.Phone, new { disabled = "disabled", @class = "form-control" })
正如在这个主题中已经提到的,建议的答案在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>