ASP.NET MVC - 默认范围验证错误消息未被覆盖

cez*_*ann 7 c# asp.net-mvc rangevalidator data-annotations asp.net-mvc-4

假设我有一个这样的模型属性:

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

即使在注释上设置了自定义错误消息,我仍然收到范围注释的默认错误消息“请输入小于或等于 31 的值。”,当我在@Html.TextBoxFor(model => model.DataInicial)场地。

我知道这篇文章,但我认为如果您可以在注释级别设置自定义消息,它应该可以在不设置 App_GlobalResources 和 .resx 文件、设置第三方库或其他任何内容的情况下工作......我知道添加 . resx 文件并将所有这些验证字符串放在那里,是一种“最佳实践”,但是......

那么,我可能哪里出错了,因为消息显示不正确?

先感谢您。

Dan*_*ano -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...
Run Code Online (Sandbox Code Playgroud)

如果为空,则验证后您将得到“xxx may not be Blank”。当输入的值无效时,您应该看到另一个错误“输入的值...”。