如何在代码中设置复选框值

时间:2011-12-07 21:06:30

标签: html asp.net-mvc

您好我有一些代码:

foreach (var item in Model) {
        <div>
            @Html.DisplayFor(modelItem => item.UserRole.Role.Name)
        </div>
        <div>
            <input type="checkbox" name="ids" checked="@item.Active" />
        </div>
    }

我想要实现的是设置复选框检查项目是否为活动否则未选中。

我理解语法应为checked="checked",我将其设置为checked="true"

我不明白如何将true转换为checked以及如何将false转换为。

我试图使用三元组但它不会很好玩。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

checked属性的存在将导致它被检查,即属性的值与(AFAIK)无关。因此,您需要检测是否要添加checked属性:

foreach (var item in Model) 
{
        <div>
            @Html.DisplayFor(modelItem => item.UserRole.Role.Name)
        </div>
        <div>
               <input type="checkbox" name="ids" @if (item.Active) { Write("checked"); }/>
        </div>
    }

编辑:更改为MДΓΓБДLL版本,更清洁。

一种蛮力逼近= P

答案 1 :(得分:1)

  

我理解语法应为checked="checked"

如果您使用的是XHTML,那是真的。在HTML中,您只需指定该属性的值的简写语法is recommended(尽管用户代理在这些日子里没有长问题,但输入的速度更快)。

<input type="checkbox" name="foo" value="bar" checked>
  

我不明白如何将true转换为已检查的

这取决于您使用的(未指定的)模板语言。

  

以及如何做假。

根本不要包含checked属性。

<input type="checkbox" name="foo" value="bar">

答案 2 :(得分:1)

在HTML中,要取消选中它,只需删除checked =“whatever”属性即可。从技术上讲,HTML并不关心checked =“”的值是什么,只是它存在并且它是有效的标记。