2016-09-27 79 views
-1

我正在使用CheckBoxFor提交布尔值。复选框始终在MVC中返回空值剃刀

Demo.cshtml

<div class="checkbox"> 
    <label>@Html.CheckBoxFor(i => i.ReportModel.Is_XRay.Value) X-Ray</label> 
</div> 

enter image description here

即使我选择复选框,我正在隐值false。

而且当我提交页面,我得到复选框null值

+1

是否有任何理由'Is_XRay'为空?我认为这可能是你的问题的原因... – petelids

+0

数据库中没有它的只是空。但总是有值真/假 –

+0

看看这个问题 - http://stackoverflow.com/questions/6849774/mvc3-creating-checkbox-for-nullable-boolean。我认为这可能会有所帮助。在这种情况下,最好查看Darin的答案(即创建一个具有非空属性的视图模型)。 – petelids

回答

0

隐藏的输入应该始终有假值。这是因为当您的复选框没有被选中时,没有数据会被发送到服务器。要解决这个问题,有一个隐藏的输入,其值始终发布到服务器。您将注意到,在使用勾选的方框提交时,网址应该包含变量名称两次(一次为true,一次为false)。现在解决你的真正问题 - 我怀疑它可能与你的变量的名称有关。当你在列表中使用对象时,Razor会插入下划线,而且我认为你已经在给模型绑定器一个难题了。