如何在viewmodel中创建可选的是/否单选按钮

时间:2014-09-04 06:53:49

标签: c# asp.net-mvc asp.net-mvc-5

假设我的表格很长,用户可以输入许多不同的可选值。

这些可选值之一是布尔值。根据用户输入,我需要在我的数据库中执行以下操作:

  • 如果"是",则添加" 1"在数据库中
  • 如果" no",则添加" 0"在数据库中
  • 如果输入了non,请添加" null"在数据库中

但是,我能找到的最正常的viewmodel / razor代码如下:

    @Html.LabelFor(m => m.FurnitureIsIncluded)
    @Html.RadioButtonFor(model => model.FurnitureIsIncluded, true) Ja

这里我的值为false,作为布尔值的默认值。

在MVC中修复此问题的方法是什么?

1 个答案:

答案 0 :(得分:2)

在视图模型中为FurnitureIsIncluded使用可以为空的bool

@Html.RadioButtonFor(m => m.FurnitureIsIncluded, "true")<span>Yes</span>
@Html.RadioButtonFor(m => m.FurnitureIsIncluded, "false")<span>No</span>
@Html.RadioButtonFor(m => m.FurnitureIsIncluded, "", Model.FurnitureIsIncluded.HasValue ? null : new { @checked = "checked" })<span>Cant decide</span>

然后根据选择发回truefalsenull。然后,您需要测试true / false以将值保存为“1”或“0”