我可以在asp.net mvc中本地化大多数数据注释。但是,对于其中一些我不能。例如,看看这个:
public class TestModel {
[Required(ErrorMessageResourceName="MyFloat",ErrorMessageResourceType=typeof(MyResource))]
[Display(Name = "MyFloat", ResourceType = typeof(MyResource))]
public float MyFloat { get; set; }
}
如您所见,我可以本地化Required
和Display
属性。但是,如果最终用户在字段中键入字符串,则验证程序将使用以下消息引发错误:
字段MyFloat必须是数字。
我搜索了所有属性以找到更改此消息的属性,但我不能。你有什么想法吗?提前谢谢。
答案 0 :(得分:1)
我发现添加此数据注释更容易:
[RegularExpression(@"^[0-9]+$", ErrorMessageResourceName="MyFloat",ErrorMessageResourceType=typeof(MyResource))]
它适用于客户端
答案 1 :(得分:0)
您可以尝试使用Range
属性:
[Range(float.MinValue, float.MaxValue, ErrorMessageResourceName = "IncorrectFloat", ErrorMessageResourceType=typeof(Resources))]
public float MyFloat { get; set; }
答案 2 :(得分:0)
这是一系列事件的问题。框架与您的自定义框架。
您收到的默认消息已深入构建到框架中。它是一个字符串资源。默认模型绑定器在将字符串值绑定到double类型时添加它。这显然是在之前进行自定义验证,因此您首先收到此默认错误消息。
要更改此行为,您可能需要编写自定义模型绑定器。 如何创建自定义模型绑定器的示例是here。
希望这有帮助。
答案 3 :(得分:0)
如果它是客户端,你担心只是将它添加到jquery.validate.js文件的末尾或单独的javascript文件并在之后引用它:
jQuery.extend(jQuery.validator.messages, {
required: "Este campo es obligatorio.",
remote: "Por favor, llenar este campo.",
email: "Debe escribir una dirección de correo válida",
url: "Debe escribir una dirección válida.",
date: "Debe escribit una fecha válida.",
dateISO: "Debe escribit una fecha (ISO) válida.",
number: "Debe escribir un número válido.",
digits: "Por favor, esribir sólo dígitos.",
creditcard: "Debe escribir un número de tarjeta válido.",
equalTo: "Por favor, escribir el mismo valor nuevamente.",
accept: "Por favor, escribir un valor con una extensión aceptada.",
maxlength: jQuery.validator.format("Por favor, no escribir más de {0} caracteres."),
minlength: jQuery.validator.format("Por favor, no escribir menos de {0} caracteres."),
rangelength: jQuery.validator.format("Por favor, escribir un valor entre {0} y {1} caracteres."),
range: jQuery.validator.format("Por favor, escribir un valor entre {0} y {1}."),
max: jQuery.validator.format("Por favor, escribir un valor menor o igual a {0}."),
min: jQuery.validator.format("Por favor, escribir un valor mayor o igual a {0}.")
});
应该将您的邮件本地化。