2

說我有這樣的一個模型屬性:ASP.NET MVC - 默認範圍驗證錯誤信息沒有被覆蓋

[Range(1, 31, ErrorMessage = "O dia de fechamento deve possuir valores entre 1 e 31")] 
public int DataInicial { get; set; } 

即使在註釋設置自定義錯誤消息,我仍然得到默認當我在@Html.TextBoxFor(model => model.DataInicial)字段中輸入類似「32」或更多的內容時,Range註釋「請輸入小於或等於31的值」的錯誤消息。

我知道this後,但我認爲如果你可以在註釋級別設置自定義消息,它應該沒有設置App_GlobalResources和.resx文件,設置第三方庫或任何其他工作......我知道添加一個.resx文件並將所有這些驗證字符串放在那裏,是一個「最佳實踐」,但...

所以,我可能錯了,因爲消息顯示不正確?

預先感謝您。

+0

你看到的錯誤信息是什麼? – Gjohn 2014-09-18 17:58:41

+0

客戶端或服務器端驗證? – 2014-09-18 17:59:50

+0

客戶端驗證(在發佈表單之前發生的驗證)。我得到了「請輸入小於或等於31的值」。當我在帶有範圍驗證的表單字段中輸入「32」時,如上所述。我需要更改哪些內容才能自定義此消息? – 2014-09-18 18:47:53

回答

-1

我遇到了同樣的問題,並嘗試了一些。只是自己學習MVC,這不是太明顯,但解決方案看起來不錯,有道理。這個問題只是歸結爲哪個驗證屬性被觸發。

我發現ErrorMessage是特定於它與之相關的驗證。

一個簡單的例子應該讓真正清楚......

[Required(ErrorMessage="xxx may not be blank.")] 
[Range(0.0,1000.0,ErrorMessage="The value entered must be 0 to 1000.00")] 
public virtual double xxx() // snip... 

如果爲空,在驗證你會得到「XXX不能爲空」。雖然已輸入一個值但無效,但您應該看到另一個錯誤「輸入的值...」。

+0

問題是關於自定義錯誤消息不覆蓋Range的默認錯誤消息。你的回答與這個問題無關。 – Hoots 2017-12-06 14:16:05