MVC 2模型验证消息

时间:2010-10-19 12:31:05

标签: asp.net asp.net-mvc-2 asp.net-mvc-2-validation

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

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

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

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

可以关闭此消息,自定义吗? (或者最好的解决办法就是用字符串替换int?)

谢谢!

1 个答案:

答案 0 :(得分:1)

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

如果你的模型是一个int,那么唯一有效的输入将是int(或者是空的,如果它是“int?”),除非有充分的理由否则你不应该试图阻止它......而且,我相信你可以保留整个正则表达式,因为MVC已经隐式检查了你(因为它是一个int)。