相关疑难解决方法(0)

如何在@Html帮助程序生成的MVC中更改"data-val-number"消息验证

假设这个模型:

Public Class Detail
    ...
    <DisplayName("Custom DisplayName")>
    <Required(ErrorMessage:="Custom ErrorMessage")>
    Public Property PercentChange As Integer
    ...
end class
Run Code Online (Sandbox Code Playgroud)

和观点:

@Html.TextBoxFor(Function(m) m.PercentChange)
Run Code Online (Sandbox Code Playgroud)

将继续这个HTML:

   <input data-val="true" 
    data-val-number="The field 'Custom DisplayName' must be a number." 
    data-val-required="Custom ErrorMessage"     
    id="PercentChange" 
    name="PercentChange" type="text" value="0" />
Run Code Online (Sandbox Code Playgroud)

我想自定义data-val-number我猜测生成的错误消息,因为它PercentChange是一个Integer.我正在寻找这样一个属性来改变它,range或者任何相关的不起作用.
我知道有可能编辑不显眼的js文件本身或在客户端覆盖它.我想像data-val-number服务器端的其他人一样更改错误消息.

validation asp.net-mvc localization unobtrusive-validation asp.net-mvc-3

75
推荐指数
7
解决办法
7万
查看次数

MVC 4忽略DefaultModelBinder.ResourceClassKey

App_GlobalResources使用PropertyValueRequired密钥添加资源文件并更改DefaultModelBinder.ResourceClassKey为文件名对MVC 4没有影响.字符串The {0} field is required永远不会更改.我不想在每个必填字段上设置资源类类型和键.我错过了什么吗?

编辑:

我对Darin Dimitrov的代码进行了一些小修改,以保持必需的自定义工作:

public class MyRequiredAttributeAdapter : RequiredAttributeAdapter
{
    public MyRequiredAttributeAdapter(
        ModelMetadata metadata,
        ControllerContext context,
        RequiredAttribute attribute
    )
        : base(metadata, context, attribute)
    {
        if (attribute.ErrorMessageResourceType == null)
        {
            attribute.ErrorMessageResourceType = typeof(Messages);
        }
        if (attribute.ErrorMessageResourceName == null)
        {
            attribute.ErrorMessageResourceName = "PropertyValueRequired";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc localization model-binding asp.net-mvc-4

21
推荐指数
1
解决办法
6712
查看次数

在ASP.Net MVC 2中为非属性模型验证提供本地化错误消息?

我正在使用DataAnnotations属性和ASP.Net MVC 2为我的ViewModel提供模型验证:

public class ExamplePersonViewModel {
    [Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))]
    [StringLength(128, ErrorMessageResourceName = "StringLength", ErrorMessageResourceType = typeof(Resources.Validation))]
    [DataType(DataType.Text)]
    public string Name { get; set; }

    [Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))]
    [DataType(DataType.Text)]
    public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这似乎按预期工作(尽管它非常冗长).我遇到的问题是,正在执行的幕后模型验证与任何特定属性无关.上述模型中的一个例子是该Age属性需要是一个int.如果您尝试在表单上输入非整数值,则会出现以下(非本地化)消息时出错:

字段Age必须是数字.

如何对这些非属性验证消息进行本地化?

是否有可用的这些消息的完整列表,以便我可以确保它们都已本地化?

asp.net-mvc localization data-annotations

19
推荐指数
2
解决办法
1万
查看次数

asp.net mvc验证必须是一个数字自定义错误

我是asp.net的新手,我有一个问题.当用户在编辑器中插入除数字以外的十进制字段时,他们会收到错误"字段名称"不是数字.但我不希望他们收到此消息,我希望他们收到另一条消息.对于必需和范围验证器,我没有问题.我有什么方法可以做到这一点吗?

我没有提到改变文化只是显示另一条消息.

谢谢.

validation asp.net-mvc

10
推荐指数
2
解决办法
2万
查看次数