我的对象具有数据类型为int字段。当我把HTML表单在这个文本信没有编号声言如下─字段必须是数字的验证。如何更改这样这个消息

 [Required(ErrorMessage = "Введите название")]
    [DisplayName("Название")]
    public int age { get; set; }
有帮助吗?

解决方案

我还没有找到一个清洁的方式来实现这一点使用数据注释。一种方法是编写自定义的模型绑定,但是这似乎是一个大量的工作,对于这样一个简单的任务做。

要实现这一点的另一种方法是将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资源键。

IMO使用数据注释来执行验证逻辑是有限的(也许在.NET 4,这将改变)。如果你想有过验证逻辑,我会建议你使用验证库,如流利的验证或 XVAL

其他提示

我遇到了同样的问题,并通过指定正则表达式,其仅允许正的自然数围绕它的工作。

[Required(ErrorMessage = "Введите название")]
[DisplayName("Название")]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Поле возраст не является числом")]
public int age { get; set; }

不知道是否有任何挫折到该溶液中。这似乎为我工作的罚款。

PS:如果你不希望允许前导零使用"^[1-9]+[0-9]*$"

在回想:我必须承认,虽然这是一个有点怪异正则表达式添加到一个整数

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top