我有这个字段,由于某种原因,当我点击提交,获得一个验证消息,该字段是必需的。
[DisplayName("Total Budget:")] public double Budget { get; set; } @Html.EditorFor(model => model.account.Budget) @Html.ValidationMessageFor(model => model.account.Budget) public class Account { [DisplayName("Total Budget:")] public double Budget { get; set; } //dropdown }
解决方法
MVC中的内置DefaultModelBinder将对类型为int,DateTime,decimal等的类型执行必需的和数据类型的验证。即使没有使用[required]来明确指定验证,也会发生这种情况。
为了使此可选,您必须将其定义为可空:
public double? Budget { get; set; }