<%= html.checkbox(“Name”,boolean)%>复选框未检查

时间:2009-10-01 22:28:31

标签: asp.net-mvc checkbox

为什么没有使用此代码检查复选框?

<td><%=Html.CheckBox("ItemIsActive", item.ItemIsActive)%></td>

Item.ItemIsActive的类型为boolean,设置为true

当我这样做时,它在视图中显示“true

<td><%=item.ItemIsActive%></td>

4 个答案:

答案 0 :(得分:1)

我有同样的问题,直到我将布尔字段更改为不可为空的字段。确保您的Item.IsActive字段声明为:

bool ItemIsActive {..}

而不是

bool? ItemIsActive {..}

如果您使用Linq2Sql,请确保ItemIsActive在您的表中不可为空。

答案 1 :(得分:1)

我也有同样的问题(使用ASP.NET MVC)。

实际上我有一个带有两个复选框的表单,一个布尔值可以为空,另一个不可为空。

在非可空的情况下,当数据库中的值为true时,检查复选框。在可空的情况下,我无法使用Html.CheckBox检查它。

我通过将模型中的值转换为非可空布尔值来解决它。

<td><%=Html.CheckBox("ItemIsActive", item.ItemIsActive == null ? 
  false : 
  (bool)item.ItemIsActive) %></td>

答案 2 :(得分:0)

我现在玩了大约30分钟,我尝试了以下内容;

1)创建一个复选框并设置为true 2)创建一个变量,设置为true并将其用作checked标志 3)创建两个具有相同ID的复选框,将一个设置为false,将另一个设置为true

所有上述工作都很好,所以我能想到的(唯一)一件事就是你可能会将某些css或javascript设置复选框设置为false。如果你使用jQuery,这很容易做到。

对这个问题的回复如此之少的事实似乎表明其他人似乎无法复制你的问题。

就像我说的那样,我会检查我的CSS以及我在页面上的任何Javascript / jQuery,部分控件,主控等。

答案 3 :(得分:0)

如果您有一个名为ItemIsActive的viewdata项目,或者您的视图与具有该属性的特定模型绑定,那么它将使用您指定的内容。

要查看是否可以尝试将其更改为:

<td><%=Html.CheckBox("ItemIsActive_test", item.ItemIsActive)%></td>

如果有效,那么我会在viewdata中下注,或者在模型中覆盖item.ItemIsActive包含的内容