最佳答案
我有一个 ASP.Net MVC 3 web 应用程序,我正在使用 HtmlHelper 类为一个视图页面添加一个复选框,像这样..。
@Html.CheckBox("CheckBox1", true, new { @class = "Class1" })
我想做的是根据视图状态属性有条件地添加禁用属性。基本上,以下是最理想的..。
@Html.CheckBox("CheckBox1", true, new { @class = "Class1", @disabled = Model.ReadOnly })
不幸的是,由于禁用属性的性质,这将不起作用,因为分配给禁用属性的 任何值(甚至“ false”)将被转换为 true。
我已经想出了一些解决这个问题的办法,所以问题不是我如何才能做到这一点。但是,是否有一种类似上述所需方法的简单方法?或者我必须采取以下措施之一?..
我知道我能做什么。
创建一个 if/else 语句,然后写入不同的 Html.CheckBox
行(这对可读性不是很好——可能会抛出一个标记警告——不确定)
跳过 HtmlHelper 类,手动编写标记,从而实现更好的条件属性(使代码更短,但增加了不一致性)
创建一个自定义助手,它接受一个“禁用”参数(最干净的解决方案,但需要不想要的额外方法-可能是目前为止最好的选择)