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

C# ASP.NET MVC-未覆盖默认范围验证错误消息,c#,asp.net-mvc,asp.net-mvc-4,data-annotations,rangevalidator,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; } 即使在注释上设置了自定义错误消息,当我在@Html.TextBoxFor(model=>model.datainical)字段中键入类似于“32”或更多的内容时,仍然会收到范围注释的默认错误消息“请输入一个小于或等于31的

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

[Range(1, 31, ErrorMessage = "O dia de fechamento deve possuir valores entre 1 e 31")]
public int DataInicial { get; set; }
即使在注释上设置了自定义错误消息,当我在
@Html.TextBoxFor(model=>model.datainical)
字段中键入类似于“32”或更多的内容时,仍然会收到范围注释的默认错误消息“请输入一个小于或等于31的值”

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

那么,由于信息显示不正确,我可能错在哪里呢


提前谢谢。

我遇到了同样的问题,并进行了一些试验。我自己只是在学习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可能不为空”。当输入的值无效时,您应该会看到另一个错误“输入的值…”。

您看到的错误消息是什么?客户端或服务器端验证?客户端验证(发布表单之前发生的验证)。如前所述,当我在具有范围验证的表单字段中键入“32”时,得到了“请输入一个小于或等于31的值”。我需要在哪里更改以自定义此邮件?4年后,这仍然是一个问题。我看到此错误消息:请在int:[范围(1,9999,ErrorMessage=“属性号必须介于1和9999之间”]上输入大于或等于1的值。检查我的页面时,我看到此消息:data val Range=“属性号必须介于1和9999之间”因此,不引人注目的验证应该是有效的,但事实并非如此。有趣的是,我也有这样的验证:data val number=“字段代码必须是一个数字。”但是,当我输入字母时,仍然会看到相同的错误:请输入大于或等于1的值。问题是关于自定义错误消息未覆盖范围的默认错误消息。您的答案与此问题无关。