我有一个由ASP.NET生成的表单。 我有一些必填字段,我正在使用[Required] dataAnnotation。 但是,根据我的网页,还需要没有[Required] DataAnnotation的元素。这些都不是必需的,但如果表格是空的,我就无法提交表格。
我使用scaffolding制作页面,使用jquery验证器(默认情况下)进行验证。
模型类(为清晰起见,省略了一些字段)
public class Room
{
[Key]
public int ID { get; set; }
[Required(ErrorMessage = "Please enter the minimum (default) price for this room.")]
[DataType(DataType.Currency)]
[Display(Name = "Minimum price")]
public decimal MinPrice { get; set; }
[Display(Name = "Alternative price")]
[DataType(DataType.Currency)]
public decimal AltPrice { get; set; }
}
在de .cshtml文件中创建表单字段的代码:
<div class="form-group">
@Html.LabelFor(model => model.MinPrice, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.MinPrice)
@Html.ValidationMessageFor(model => model.MinPrice)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.AltPrice, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.AltPrice)
@Html.ValidationMessageFor(model => model.AltPrice)
</div>
</div>
必填字段正确显示定义的错误消息(因此它会读取注释)。 非必填字段显示通用错误消息(&#34;需要替代价格字段。&#34;)。
我已经搜索了很多,但是到处都说如果[Required] DataAnnotation不在那里,那么表单中就不会要求它了。
答案 0 :(得分:11)
使非必填字段可以为空。
答案 1 :(得分:2)
我遇到了同样的问题。我不得不进入我的模型并放?在int字段中标记以使它们为空。设置为字符串的字段很好,只是导致问题的int字段。