【问题标题】:Is there a way to use checkbox with Nullable Bool property有没有办法使用带有 Nullable Bool 属性的复选框
【发布时间】:2014-07-07 15:56:10
【问题描述】:

我有一个名为 ISFullDay 的 Nullable bool 属性,其中我需要三个值:- 真、假和空。 目前在我的 asp.net mvc 视图中,我在视图中写了以下内容:-

@Html.EditorFor(a=>a.ISFullDay)

但是 mvc 处理它的方式如下:- “如果用户取消选中复选框,它将通过 false”。因此,如果我使用复选框,那么通过这种方式,我的可空值 bool 内不能有空值?那么我应该修改我的视图以显示两个单选按钮而不是复选框吗?

谢谢

【问题讨论】:

  • 实际上你需要 3 个单选按钮。使用 2 个按钮,如果用户不小心选中了其中一​​个,他们将无法取消选中它。我推荐 3 台收音机或下拉列表。

标签: razor asp.net-mvc-5 editorfor


【解决方案1】:

复选框用于二元选择。布尔值在 MVC 中可以为 Nullable 的原因是因为大多数数据库允许其布尔字段为空值,因此该值为空值的唯一时间是在尚未通过 Razor 的现有条目上(或者如果布尔值不是出于某种原因开始创作)。

如果您真的希望能够重新选择 null,我会采用 Shoe 的建议,即设置 3 个单选按钮或下拉列表,这将自动创建空选择。

编辑:

在某些情况下,当您希望 null 在提交时保持不变并且仅在进行选择时才更改时,设置 2 单选按钮可能是有意义的。这将允许在提交时布尔字段为 null,但一旦您提交更改,如果不直接在数据库中更改它,您将无法返回它为 null。

【讨论】:

    猜你喜欢
    • 2016-08-01
    • 1970-01-01
    • 2019-07-05
    • 2014-11-24
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    相关资源
    最近更新 更多