根据值选中或取消选中复选框?

时间:2012-08-07 05:01:05

标签: c# asp.net-mvc

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

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

8 个答案:

答案 0 :(得分:25)

如果您因任何原因不想使用@ Html.CheckBoxFor而且您想坚持

         <input type="checkbox"> 

然后我发现这是最好的方法:

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

@Yasser上面提供的代码:

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

对我来说没有用,因为它仍然将checked属性添加到元素中,设置checked =“”仍会将复选框呈现为已选中,这不是所需的输出,而是将整个语句包装到像这样的剃刀块:

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

您将获得所需的结果。

答案 1 :(得分:21)

if(condition = true)
{
@Html.CheckBoxFor(x => x.Test, new { @checked = "checked" })
}
else
{
@Html.CheckBoxFor(x => x.Test)
}

希望这会有所帮助:)

答案 2 :(得分:15)

如果您要编写我们自己的checked而不是使用<input>等替代方法,则可以使用更简单的方法来包含或不包含Html.CheckBoxFor属性:

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

Razor非常聪明,能够自动生成

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

<input type="checkbox">

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

答案 3 :(得分:2)

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

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

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

否则,如果没有HTML帮助程序,您可以自己动态生成属性(其他人已经指出了如何),但不要错误地认为checked = ""将取消选中该框。有关说明,请参阅this answer

答案 4 :(得分:0)

如果要在代码隐藏中选中/取消选中复选框值,则必须在复选框标记中包含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;

答案 5 :(得分:0)

尝试一下:

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

所以这是一个简单的单选按钮,它检查 loggedIn 变量以及是否将检查真正的单选按钮,否则不进行检查。

答案 6 :(得分:0)

if(condition = true)
{
@Html.CheckBoxFor(x => x.Test, new { @checked = true })
}
else
{
@Html.CheckBoxFor(x => x.Test)
}

答案 7 :(得分:-1)

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

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

功能性:

    if(x==1){
   checkBox1.Checked = true; //To Check
}
else{
   checkBox1.Checked = false // To Uncheck
}