【问题标题】:Data Annotation - wrong error message for numbers数据注释 - 数字的错误错误消息
【发布时间】:2013-04-07 20:08:42
【问题描述】:

我有一个双变量:

 public double Width { set; get; }

我想验证号码并显示错误消息,所以我添加了:

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

如果我输入负数效果很好,但如果我将其留空或输入字母 - 内部错误消息是

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

我没有使用 @html.validationmessagefor ,因为我需要手动处理 ModelState 的 ErrorMessage 或 error.exception.InnerException.message。

我该如何解决这个问题?

【问题讨论】:

标签: c# validation data-annotations


【解决方案1】:

这个错误信息似乎来自double.Parse

双重类不使用数据注释属性,它们只是被某些框架使用。

无论如何,您的输入字符串似乎不是有效的双精度字符串,因此范围验证与有效的双精度字符串无关。

【讨论】:

  • 我通过 JS 创建了一个视图模型并发送它,所以也许这就是它使用 double.parse 的原因?无论如何,我怎样才能更改此消息的文本?
  • 也许在onvalidation事件中,你可以通过double.TryParse函数检查,如果需要的话抛出一个新的自己的异常
  • hmm.. 我没有原始值。如果我输入“abc”而不是数字 - 我在“Width”中得到“0.0”,而“ModelState.IsValid”为假;
猜你喜欢
  • 1970-01-01
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多