【发布时间】:2020-03-06 10:06:25
【问题描述】:
我正在创建一个应用程序,用户填写一个表单,其中某些属性的设置不是强制性的。这包括复选框和单选按钮。
所以,我的模型中有这样的东西:
public class MyModel {
public bool boolvalue;
public MyTwoValuedType mytypevalue;
}
我在视图中:
@model MyModel
<form method="post">
@Html.CheckBoxFor(m => m.boolvalue)
@Html.RadioButtonFor(m => m.mytypevalue, mytypevalue.Value1)
@Html.RadioButtonFor(m => m.mytypevalue, mytypevalue.Value2)
</form>
当我初始化视图时,我通过控制器中的return View(); 发送一个空模型,并且单选按钮没有值(未选中单选按钮)并且未选中复选框(因此其值为 false)。
但是,我想使用可为空的类型,例如(bool? 和MyTwoValuedType?),如果在没有用户更改复选框的值的情况下提交表单(在视图中)和单选按钮,它们没有默认值。即使表单的提交有错误,表单的重新出现(因为验证失败)在复选框和单选按钮中都有用户未设置的值......
我应该将Html.DropDownListFor 与可空类型一起使用而不是复选框和单选按钮吗?这样会有好的结果吗?
【问题讨论】:
标签: c# html asp.net-mvc asp.net-core-mvc