我有一个包含一些整数的模型。一个有默认值而另一个没有。我想为A
呈现值4的输入字段和B
的空值。似乎Razr为我的B
自动将默认值设置为0。
模型
public class MyModel
{
public int A { get; set; } = 4;
public int B { get; set; };
}
控制器
// GET /MyModel/Create
public ActionResult Create()
{
var myModel = new MyModel();
return View(myModel );
}
创建视图
@Html.EditorFor(model => model.A, new { htmlAttributes = new { @class = "form-control" } })
@Html.EditorFor(model => model.B, new { htmlAttributes = new { @class = "form-control" } })
A
渲染为4,但B
渲染为0。
我已尝试将属性中的@value = ""
传递给B
的编辑器,但它仍会呈现为0.
如何将B
渲染为空字段?我不想让它可以为空,因为它是必填字段。
答案 0 :(得分:1)
int
不能是null
。如果您想最初显示null
(空)值,但要使其成为必填项,请设置属性int?
并添加[Required]
属性
[Required(ErrorMessage = "...")]
public int? B { get; set; };
并在视图中
@Html.EditorFor(m => m.B, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(m => m.B)