2013-04-07 42 views
0

我有一个双可变错误的错误消息:所以我说数据诠释 - 对数字

public double Width { set; get; } 

我要验证的数量,并显示一条错误消息:

[Range(0.0, Double.MaxValue, ErrorMessage = "Width must be a valid number")] 

它的伟大工程,如果我输入一个负数,但如果我将它留空或输入字母 - 内部错误消息是

“输入字符串格式不正确。”

我不是usign @ html.validationmessagefor,因为我需要手动处理ModelState的ErrorMessage或error.exception.InnerException.message。

我该如何解决这个问题?

+0

查看http://stackoverflow.com/questions/3451255/asp-net-mvc-int-property-bind-exception – LostInComputer 2013-04-07 12:07:40

回答

0

看来,这个错误消息来自double.Parse

数据注释属性不使用双类,他们只是使用一些框架。

无论如何,它看起来像你的输入字符串是无效的双倍,所以范围验证与有效的双字符串无关。

+0

我通过JS创建一个viewmodel并发送它,所以也许这就是为什么它使用double.parse ?无论如何,我怎样才能改变这条消息的文字呢? – TamarG 2013-04-07 12:16:36

+0

也许在onvalidation事件中,您可以通过double.TryParse函数检查它,然后在需要时抛出一个新的自己的异常 – user287107 2013-04-07 12:18:26

+0

hmm ..我没有原始值。如果我输入“abc”而不输入数字 - 我在“宽度”中获得“0.0”,并且“ModelState.IsValid”为假; – TamarG 2013-04-08 11:15:26