我的对象具有数据类型为int的字段.当我在这个文本框中输入html格式时,字母不是数字,验证者说 – 字段必须是数字.我该如何改变这样的消息呢
[required(ErrorMessage = "Введите название")] [DisplayName("Название")] public int age { get; set; }
解决方法
我还没有找到一种使用Data Annotations实现这一目标的简洁方法.一种方法是编写自定义模型绑定器,但这对于这样一个简单的任务来说似乎要做很多工作.
另一种实现此目的的方法是将App_GlobalResources文件夹添加到ASP.NET应用程序中.添加名为Messages.resx的资源文件,其中包含PropertyValuerequired字符串资源.
PropertyValuerequired = "Some custom error message"
在Application_Start中注册资源类键:
protected void Application_Start() { RegisterRoutes(RouteTable.Routes); DefaultModelBinder.ResourceClassKey = "Messages"; }
请注意,ASP.NET MVC 2使用PropertyValueInvalid而不是PropertyValuerequired资源键.
使用Data Annotations执行验证逻辑的IMO是有限的(可能在.NET 4中这将改变).如果您想完全控制验证逻辑,我建议您使用验证库,如Fluent Validation或xVal.