2009-10-01 75 views
0

为什么复选框没有被这个代码检查?<%= html.checkbox(“Name”,布尔值)%>复选框没有被检查

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

Item.ItemIsActiveboolean类型的,并且设置为true

当我做到这一点,就说明“true”视图

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

你可以在Html.Checkbox(...)调用上设置一个断点来验证吗?另外,你是否仔细检查了生成的html源代码? – 2009-10-01 22:39:00

+0

我自己有这个问题,我从来没有得到本地帮手正常工作。我最终做出了一个名为CheckboxForBool的自己的助手,最终解决了我的问题。我目前没有代码,但如果我没有解决这个问题,我会发布我使用的代码。 – 2009-10-01 23:52:40

回答

1

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

bool ItemIsActive {..} 

代替

bool? ItemIsActive {..} 

如果您正在使用LINQ2SQL确保ItemIsActive是不是在你的桌子空。

0

我这个打了30分钟左右,现在我曾尝试以下;

1)创建一个复选框并设置为true 2)创建的变量,设置为true,并使用它作为检查标志 3)具有相同id其它设置一个假变为真

创建两个复选框

以上所有的工作都很好,所以我能想到的(唯一的)事情是您可能会将一些CSS或JavaScript设置复选框重新设置为false。如果你使用jQuery,这很容易做到。

事实上,对这个问题的答复如此之少似乎表明其他人似乎也无法复制您的问题。

就像我说的,我会检查我的CSS和任何JavaScript/jQuery的我在网页上,部分控制,掌握等

+0

嗨,thx为你的时间。 我尝试这样做: ​​<%= item.ItemIsActive%> ​​<%= Html.CheckBox( “ItemIsActive”,item.ItemIsActive)%> 正如所看到的我使用item.ItemIsActive在相同的观点。当我运行的网站,这是我所看到的: ​​假 ​​<输入ID =“ItemIsActive” NAME =“ItemIsActive”类型=“复选框”值=“真” /> 是有毛病我设置html.checkbox的方式? – kevinius 2009-10-02 09:48:30

0

如果你有一个叫做ItemIsActive一个可视数据项,或者如果你的观点绑定到具有名为的属性的特定模型,它将使用您指定的内容。

要看看这可能是它试图将其更改为这样:

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

如果这样的作品,那么我会打赌在ViewData的东西,或在模型中重写什么item.ItemIsActive包含

+0

item.ItemIsActive包含布尔类型从数据库记录来: 昏暗连接= DB.MijnLijstjeItems.ToList()返回 连接 – kevinius 2009-10-02 09:54:53

+0

@kevinus,你可能会想尝试@solmead咨询,并有一个测试,将名为变量说'slapy'为true,并在你的复选框中使用它来查看是否有效。你可能实际上有冲突。 – griegs 2009-10-04 03:45:26

+0

甚至只是做: ​​ <%= Html.CheckBox( “ItemIsActive”,真)%> <%= Html.CheckBox( “ItemIsActive_Test”,真)%> – Solmead 2009-10-06 02:03:44

1

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

其实我有一个窗体有两个复选框,其中一个布尔值可为空而另一个不可为空。

在不可为空的情况下,当来自数据库的值为真时,复选框被选中。在可空的情况下,我无法使用Html.CheckBox进行检查。

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

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