我正在进行.Net Core MVC学习,通过尝试在模型中进行表单验证的过程进行学习,但它没有按预期工作。
在模型中:
namespace VPV.Models {
public class Event : IValidatableObject {
[Required(ErrorMessage = "Feltet 'Start' er obligatorisk")]
[DisplayFormat(DataFormatString = "{0:g}", ApplyFormatInEditMode = true)]
[DataType(DataType.DateTime, ErrorMessage = "Der er ikke angivet en gyldig 'Start'")]
public DateTime StartDateTime { get; set; }
}
}
在表格上:
<div asp-validation-summary="All"></div>
和:
<input asp-for="Event.StartDateTime" type="text" class="form-input fv-req" />
问题是,如果我将StartDateTime字段留空,屏幕上的错误消息是"值"无效",而不是我在模型中键入的错误消息。
此外,当在字段中键入无效的日期时间值时,错误消息为"值'15/11/2019 09.81'对StartDateTime无效"-我再次想要我自己的错误消息。
我做错了什么?
DateTime类型有一个默认值。这就是为什么所需属性没有触发的原因。我一直做的是,如果我期望一个属性为null或为空,我会使其为null。
Ex。
DateTime? StartDateTime
希望这能有所帮助。