MVC3标记为可空的bool,当它不是时

时间:2013-12-20 08:46:39

标签: c# asp.net-mvc asp.net-mvc-3 validation

我有一个Nullable<bool>属性作为我的模型的一部分,null完全有效:

public class IndexModel
{
    [DisplayName("Archived")]
    public bool? FilterArchived { get; set; }
}

但是,当它到达控制器操作时,如果它为null,则验证失败。我现在必须做以下事情来解决这个问题:

public ActionResult Index(IndexModel viewModel)
{
    ModelState.Remove("FilterArchived");

    // ......
}

为什么FilterArchived属性在ModelState为null时会产生错误,如何阻止它?


确切的验证错误是:

  

值'null'对于Archived无效。

1 个答案:

答案 0 :(得分:2)

“Null”不是bool?

的有效值

要成功将null绑定到模型值,必须缺少空字符串。