c#-有条件地在html.RadioButtonFor(MVC4 / Razor)中包含选中的属性

当您在手动编码的html元素(例如单选按钮)中明确包含选中的属性时,可以使用bool来确定该属性是否将完全存在于该元素上as seen here.
对于那些不想单击链接并为该人提供一些当之无愧的流量的人:

@ {
    布尔同意= true;
}
<输入类型=“复选框”名称=“同意”值=“同意”选中=“ @同意” />

但是,可以说我要对对象使用@ Html.RadioButtonFor().不会发生相同的情况.

@ Html.RadioButtonFor(m => m.Property,“ ValueOfTextBox”,新的{@id =“ MyId”,@class =“ my-class”,自动完成=“ off”,@checked = someBoolValue}).

上面给出了一个checked =“ true”或checked =“ false”属性.

我们的域模型,视图模型和许多其他事物之间的差异使我们无法使用一些更有趣的支架…而且可以说,如果您包括了如此多的属性,那么不使用帮助器可能会更好. ..但是有没有办法使助手具有与纯HTML相同的行为?

我在HtmlHelper上创建了一个附加的扩展方法,以包含一个控制该属性存在的布尔值,但是我很想知道是否存在更直接/框架的行为方式来解决此特定问题.

解决方法:

您确实不需要以这种方式设置checked属性-帮助程序将根据属性的值为您完成此操作.例如,如果您的模型具有“性别”属性,而您要渲染“男性”和“女性”单选按钮

@Html.RadioButtonFor(m => m.Gender, "Male")<span>Male</span>
@Html.RadioButtonFor(m => m.Gender, "Female")<span>Female</span>

并且“性别”的值为“女性”,则在渲染页面时,将选中第二个单选按钮.相似地

@Html.CheckboxFor(m => m.IsMale)

如果IsMale = true,则将复选框选中;如果IsMale = false,则将复选框取消选中

上一篇:美国线规-AWG


下一篇:c#-即使修复了模型定义中的设置后,控制器中的模型也为空