当您在手动编码的 html 元素(例如单选按钮)中显式包含 checked 属性时,您可以使用 bool 来确定该属性是否存在于该元素上正如这里所看到的。 http://www.davidhayden.me/blog/conditional-attributes-in-razor-view-engine-and-asp.net-mvc-4对于那些不想点击链接并给这个人一些应得的流量的人:
@{
bool agree = true;
}
<input type="checkbox" name="agree" value="agree" checked="@agree" />
但是,假设我想使用@Html.RadioButtonFor()
,与一个对象。同样的情况不会发生。
@Html.RadioButtonFor(m => m.Property, "ValueOfTextBox", new { @id = "MyId", @class = "my-class", autocomplete = "off", @checked = someBoolValue })
.
上面给出了一个checked="true"
or checked="false"
属性。
我们的领域模型、视图模型和许多其他事物之间的差异使我们无法使用一些更有趣的脚手架……并且可以说,如果您包含这么多属性,您可能会更好not使用助手...但是有没有办法让助手具有与纯 html 相同的行为?
我创建了一个额外的扩展方法HtmlHelper
包含一个控制属性是否存在的布尔值,但我很想知道是否有更直接/框架行为的方法来解决这个特定问题。
你真的不需要设置checked
以这种方式添加属性 - 帮助器将根据属性的值为您执行此操作。例如,如果您的模型有属性Gender
并且您想要渲染“男性”和“女性”的单选按钮
@Html.RadioButtonFor(m => m.Gender, "Male")<span>Male</span>
@Html.RadioButtonFor(m => m.Gender, "Female")<span>Female</span>
和价值Gender
是“女性”,那么当页面呈现时,将检查第二个单选按钮。相似地
@Html.CheckboxFor(m => m.IsMale)
将使复选框呈现为选中状态,如果IsMale = true
并且未经检查如果IsMale = false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)