如何在剃刀视图中设置复选框?

khe*_*eya 35 razor asp.net-mvc-3

我默认需要选中一个复选框:

我尝试了所有这些,没有检查我的复选框 -

@Html.CheckBoxFor(m => m.AllowRating, new { @value = "true" })

@Html.CheckBoxFor(m => m.AllowRating, new { @checked = "true" })

@Html.CheckBoxFor(m => m.AllowRating, new { @checked = true })

@Html.CheckBoxFor(m => m.AllowRating, new { @checked = "checked"})
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 37

您应该将AllowRating属性设置为true,最好是在控制器或模型中.
与其他输入一样,复选框的状态反映了属性的值.


Mar*_*ark 15

最后一行的语法是正确的.

 @Html.CheckBoxFor(x => x.Test, new { @checked = "checked" })
Run Code Online (Sandbox Code Playgroud)

那肯定会奏效.这是正确的语法.如果您有现有模型并且AllowRating设置为true,则MVC将自动添加checked属性.如果AllowRating设置为false,MVC将不会添加该属性,但是如果需要,您可以使用上述语法.


Car*_*edo 7

这对我有用:

<input id="AllowRating" type="checkbox" checked="@Model.AllowRating" 
style="" onchange="" />
Run Code Online (Sandbox Code Playgroud)

如果您真的想使用HTML帮助程序:

@Html.CheckBoxFor(m => m.AllowRating, new { @checked = Model.AllowRating})
Run Code Online (Sandbox Code Playgroud)

  • 第一个例子是不正确的。只要存在 checked 属性,即使将其设置为 false 或空字符串,它也将为 true。 (4认同)
  • @Ben 这可以避免这个问题: `&lt;input type="checkbox" @(Model.AllowRating ? "checked='checked'" : "") /&gt;` (3认同)

Bra*_*der 5

您从控制器或模型将 AllowRating 属性设置为 true

      @Html.CheckBoxFor(m => m.AllowRating, new { @checked =Model.AllowRating })
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用@Html.CheckBoxFor()

@Html.CheckBoxFor(m => m.AllowRating, new{@checked=true });
Run Code Online (Sandbox Code Playgroud)

或者,您也可以使用以下简单的方法进行操作@Html.CheckBox()

@Html.CheckBox("AllowRating", true) ;
Run Code Online (Sandbox Code Playgroud)

  • 这似乎与原始海报的第三次尝试相同;您确定这个答案确实带来了什么吗? (2认同)