0

我有一个具有这样一个属性的视图模型:

[RegularExpression(@"^d\+$", ErrorMessageResourceType = typeof(Resources.Validation), ErrorMessageResourceName = "NumberValidationMsg" )]
public int? Number {get; set;}

NumberValidationMsg 资源设置为“仅允许数字!”。

但是当我尝试在表单上的 Number 字段中输入“test”之类的内容时,ModelState 会显示 ErrorMessage,其内容类似于:“值 'test' 对 Number 无效。”

可以关闭此消息,自定义吗?(或者也许最好的解决方案就是用 string 替换 int?

谢谢你 !

4

1 回答 1

1

如果要在字段中接受文本,则需要将其更改为字符串,并根据您的规则转换为 int。

如果您的模型是一个 int,那么唯一有效的输入将是 int(或者为空,如果它是“int?”),除非有充分的理由,否则您不应试图阻止这种情况……此外,我相信您可以忽略整个正则表达式,因为 MVC 已经隐式地为您进行检查(因为它是一个 int)。

于 2010-10-19T12:41:04.813 回答