我有一个像这样的属性的视图模型:
[RegularExpression(@"^d\+$", ErrorMessageResourceType = typeof(Resources.Validation), ErrorMessageResourceName = "NumberValidationMsg" )]
public int? Number {get; set;}
NumberValidationMsg资源设置为“仅允许数字!”。
但是当我尝试在表单上的“数字”字段中输入“test”之类的内容时,ModelState会显示ErrorMessage,其内容类似于:“值'test'对于Number无效。”
可以关闭此消息,自定义吗? (或者最好的解决办法就是用字符串替换int?)
谢谢!
答案 0 :(得分:1)
如果您想接受字段中的文字,则需要将其更改为字符串,并根据您的规则将转换设为int。
如果你的模型是一个int,那么唯一有效的输入将是int(或者是空的,如果它是“int?”),除非有充分的理由否则你不应该试图阻止它......而且,我相信你可以保留整个正则表达式,因为MVC已经隐式检查了你(因为它是一个int)。