2017-04-07 86 views
6

我想在MVC .Net Core中使用模型验证,并且无法设法替换此默认错误消息'The value''无效'。MVC .Net核心模型验证 - 值''是无效的。错误

理论上,我们可以通过在模型中使用ErrorMessage注释来替换我们自己的自定义错误消息。但是我找不到一种方法来完成这个工作。

我的模型

[Required(ErrorMessage = "Date Required")] 
[DataType(DataType.Date, ErrorMessage = "Invalid Date Format")]     
[Display(Name = "Appointment Date")] 
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
public DateTime AppointmentDate { get; set; } 

我把不同ErrorMessage两个RequiredDataType标签,如图上面。

我的HTML视图

<div class="col-md-2"> 
     <input class="form-control" asp-for="AppointmentDate"> 
     <span asp-validation-for="AppointmentDate" class="text-danger"></span> 
    </div> 

enter image description here

能否请你帮我,我怎么能拿更换了错误讯息?谢谢。

+0

你有没有[检查此](http://stackoverflow.com/questions/1538873/how-to-replace-the-default-modelstate-error-message-in-asp-net-mvc-2)?这可能是你正在寻找 – TheUknown

+0

谢谢,但不是那一个。这是用西班牙语或意大利语等另一种语言替换错误信息等。 – TTCG

回答

7

为了使您的Required属性适用于需要进行实地可空:

public DateTime? AppointmentDate { get; set; } 

编辑:也注意到,DataType属性实际上并没有在现场进行验证。 MVC应用从post数据model

+0

我遇到了同样的问题,但是,我有'[必需的]'的唯一字段是字符串。而且,对于添加和编辑实体,我都有相同的控制器操作。编辑时,它可以正常工作(在我在控制器中做任何事情之前,我检查'ModelState'),但是在添加新实体时跳过。实体上的一切都完全相同 –

0

我的问题是,在创建动作,我不回了newing一个实体,查看,当我改变了,即Return View(new MyEntity());它解决了这一问题,绑定时验证日期