如何在Razr中显示空的所需输入字段

时间:2017-12-03 10:56:34

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

我有一个包含一些整数的模型。一个有默认值而另一个没有。我想为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渲染为空字段?我不想让它可以为空,因为它是必填字段。

1 个答案:

答案 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)