说我有这样的模型属性:
[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文件并将所有那些验证字符串放在那里,是一个"最佳实践",但......
那么,我可能错了,因为消息没有正确显示?
提前谢谢。
答案 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可能不为空”。输入值但无效时,您应该看到另一个错误“输入的值...”。