我有一个由 ASP.NET 生成的表单。
我有一些必填字段,我为此使用了 [Required] dataAnnotation。
但是,根据我的网页,没有 [Required] DataAnnotation 的元素也是必需的。这些根本不是必需的,但如果它们是空的,我将无法提交表单。
我使用脚手架制作页面,使用 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>
必填字段正确显示定义的错误消息(因此它读取注释)。
非必填字段显示一般错误消息(“替代价格字段是必需的。”)。
我已经搜索了很多,但到处都说如果 [Required] DataAnnotation 不存在,则表单中将不需要它。
最佳答案
使非必填字段可以为空。
关于asp.net-mvc - ASP.NET MVC Razor - 所有表单字段都是必需的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22891690/