2017-04-07 87 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());它解決了這一問題,綁定時驗證日期