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

相关问题