我处于.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字段留空,则屏幕上的错误消息是“值”无效”,而不是我在模型中键入的错误消息。
此外,当在字段中输入无效的datetime值时,错误消息为“值'15 / 11/2019 09.81'对于StartDateTime无效”-再次,我想输入自己的错误消息。
我在做什么错了?
答案 0 :(得分:0)
DateTime类型具有默认值。这就是为什么必需属性未触发的原因。我总是做的是,如果我期望一个属性为null或为空,那么我将其设为可为空。
例如。
DateTime? StartDateTime
希望这会有所帮助。