我已经使用.Net MVC Core和Code First方法创建了一个Web应用程序,并通过脚手架生成了视图/控制器。
为了进行验证,我使用的是Fluent API和数据注释,并且一切似乎都正常。 但是,我的DataAnnotation的自定义错误消息仅在客户端验证中显示,并且当我阻止浏览器的JS来测试服务器端验证时,我收到以下错误消息:“ 值”无效”
我尝试使用[DataType(DataType.DateTime,ErrorMessage =“无效的日期!”)]],但效果不佳!
我的模特:
public class MyModel
{
[Required(ErrorMessage = "Required field!")]
[Display(Name = "Departure Date")]
public DateTime DateDeparture { get; set; }
[Required(ErrorMessage = "Required field!")]
[Display(Name = "Arrival Date")]
public DateTime DateArrival { get; set; }
}
我的观点:
public IActionResult Create()
{
return View();
}
我的控制器:
@model App.Models.MyModel
@{
ViewData["Title"] = "Create";
}
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="DateDeparture" class="control-label"></label>
<input asp-for="DateDeparture" class="form-control" />
<span asp-validation-for="DateDeparture" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="DateArrival" class="control-label"></label>
<input asp-for="DateArrival" class="form-control" />
<span asp-validation-for="DateArrival" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</form>
客户端验证
服务器端验证
根据针对类似情况(Thread)的建议解决方案,我必须使字段为空! 这似乎并不是所有情况下的正确解决方案!而且我已经有了另一种带有Non-Nullable字符串的形式,该形式为客户端和服务器端验证生成相同的自定义错误消息,这就是为什么我认为问题与标量值有关,而不是与Non / Nullable类型选项有关,但是我无法找出原因,以便能够覆盖该服务器端验证消息!
任何帮助将不胜感激……