26

我们如何根据值以编程方式选中或取消选中复选框?也就是说,对于特定用户,如果值为true,则应选中复选框,否则如果值为false,则需要取消选中复选框。我通过以下方式声明了复选框:

<input type="checkbox" class="checkbox">
4

8 回答 8

33

如果您出于某种原因不想使用 @Html.CheckBoxFor 并且您想坚持使用

         <input type="checkbox"> 

那么这就是我发现的最好方法:

 <input @(Convert.ToBoolean(Model.YourPropertyHere) == true ?   "checked='checked'" : string.Empty)  type="checkbox" />

@Yasser 上面提供的代码:

    checked="@(required ? "checked" : "")"

对我不起作用,因为它仍在将选中的属性添加到元素中,并且设置 checked="" 仍会将复选框呈现为选中状态,这不是所需的输出,而是将整个语句包装到剃刀块中像这样:

     @(Convert.ToBoolean(Model.YourPropertyHere) == true ?   "checked='checked'" : string.Empty)

你会得到想要的结果。

于 2016-08-01T19:21:53.253 回答
26
if(condition = true)
{
@Html.CheckBoxFor(x => x.Test, new { @checked = "checked" })
}
else
{
@Html.CheckBoxFor(x => x.Test)
}

希望这可以帮助 :)

于 2012-08-07T05:08:30.647 回答
18

checked如果您正在编写自己的属性而不是使用替代方法,则有一种更简单的方法来包含或不包含属性<input>,例如Html.CheckBoxFor

<input type="checkbox" checked="@isChecked">

Razor 足够聪明,可以自动生成

<input type="checkbox" checked="checked">

或者

<input type="checkbox">

取决于isCheckedtrue还是false。无需 if 语句或重复代码。

于 2015-10-04T15:32:11.717 回答
2

如果您使用 MVC 并从控制器正确传递模型值,那么

@Html.CheckBoxFor(model => model.checkBox1)

...是你所需要的全部。html-helper 执行逻辑来确定是否插入checked="checkbox"代码。

否则,如果没有 HTML-helper,您可以自己动态生成属性(其他人已经指出如何),但不要错误地认为checked = ""会留下未选中的框。请参阅 此答案以获取解释。

于 2012-08-07T09:50:58.910 回答
1

如果要在代码隐藏中选中/取消选中复选框值,则必须在复选框标记中包含 ID 和 runat 服务器属性。

<checkbox Id="chk" runat="server" class="chkbox"/>

代码隐藏:

if(yourcondition==true)
  chk.checked = true;
else
  chk.checked = false;

如果你想用 javascript 来做

<checkbox Id="chk" class="chkbox"/>

JS:

if(yourcondition==true)
  chk.checked = true;
else
  chk.checked = false;
于 2012-08-07T05:36:55.280 回答
1
if(condition = true)
{
@Html.CheckBoxFor(x => x.Test, new { @checked = true })
}
else
{
@Html.CheckBoxFor(x => x.Test)
}
于 2018-12-27T09:46:59.243 回答
0

试试这个:

<input type="radio" name="filter_favorites" value="Favorites" @(loggedIn ? "checked" : "") />

所以这是一个简单的单选按钮,它检查loggedIn变量&如果是真的单选按钮将被检查,否则不检查。

于 2018-08-27T18:10:41.257 回答
-1

您必须为复选框命名,例如:

<input name=checkBox1 type="checkbox" class="checkbox">

对于功能:

    if(x==1){
   checkBox1.Checked = true; //To Check
}
else{
   checkBox1.Checked = false // To Uncheck
}
于 2012-08-07T05:22:25.350 回答