Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery验证忽略本地化文件(ASP.NET MVC)_Jquery_Asp.net Mvc_Jquery Validate - Fatal编程技术网

JQuery验证忽略本地化文件(ASP.NET MVC)

JQuery验证忽略本地化文件(ASP.NET MVC),jquery,asp.net-mvc,jquery-validate,Jquery,Asp.net Mvc,Jquery Validate,在我的ASP.NET MVC应用程序中,我向模型添加了验证属性: public class MyModel { [Required] public string Name { get; set; } ... } 我还将本地化文件添加到我的HTML中: <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/localization/messages_de.js"></script>

在我的ASP.NET MVC应用程序中,我向模型添加了验证属性:

public class MyModel
{
    [Required]
    public string Name { get; set; }
    ...
}
我还将本地化文件添加到我的HTML中:

<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/localization/messages_de.js"></script>

但是,验证消息仍然没有翻译,我只看到英文消息。生成的HTML如下所示:

<input data-val="true" data-val-required="The Name field is required." id="Name" name="Name" type="text" value="">


如何在不在服务器端创建自己的翻译的情况下使本地化与ASP.NET MVC一起工作?我想使用现有的javascript本地化。

HTML中包含的脚本包含jQuery验证插件的错误消息。使用ASP.NET验证系统装饰模型属性所需的数据注释属性

尽管数据注释系统确实提供客户端验证,但它使用的错误消息使用ASP.NET的本地化系统附加到服务器上标记中的属性

假设您可以在jquery消息文件中找到符合您目的的错误消息,使用它们的一种方法是使用DataAnnotation属性的ErrorMessage属性为属性注入消息键,而不是错误消息本身。然后,您可以向视图中添加一个jQuery函数,该函数将从无效元素的相关属性(例如data val required)中提取密钥,以查找属性的内容,并将其替换为从消息文件中检索到的字符串

因此(概要):

public class MyModel
{
    [Required(ErrorMessage="messageKey")]
    public string Name { get; set; }
    ...
}

$(document).ready(function () {
    var elem = $("input[data-val-required]");
    elem.val(function lookupMessage() {
        var key = elem.val();
        var message = dosomethingWith(key); // lookup value
        return message;
    });
});