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

时间:2014-09-18 17:37:59

标签: c# asp.net-mvc asp.net-mvc-4 data-annotations rangevalidator

说我有这样的模型属性:

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

即使在注释上设置了自定义错误消息,我仍然会收到范围注释的默认错误消息"请输入小于或等于31的值。",当我键入类似" 32"或@Html.TextBoxFor(model => model.DataInicial)字段中的更多内容。

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

那么,我可能错了,因为消息没有正确显示?

提前谢谢。

1 个答案:

答案 0 :(得分:-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可能不为空”。输入值但无效时,您应该看到另一个错误“输入的值...”。