Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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验证插件中使用Resources.resx_Jquery_Asp.net_Resources_Jquery Validate_Unobtrusive Validation - Fatal编程技术网

如何在jQuery验证插件中使用Resources.resx

如何在jQuery验证插件中使用Resources.resx,jquery,asp.net,resources,jquery-validate,unobtrusive-validation,Jquery,Asp.net,Resources,Jquery Validate,Unobtrusive Validation,我想用jQuery验证插件验证一些表单。一切正常,直到我想使用资源文件中的消息 这是我的密码: $('#myform').validate({ rules: { test1: { required: true, }, messages: { test1: { required: "simple string works", }, }); 我试着把 '@Html.Raw(Resourc

我想用jQuery验证插件验证一些表单。一切正常,直到我想使用资源文件中的消息

这是我的密码:

$('#myform').validate({
    rules: {
        test1: {
            required: true,
        },
    messages: {
        test1: {
        required: "simple string works",
    },
});
我试着把

'@Html.Raw(Resources.testRes)'
'@Resources.testRes'
'Resources.testRes'

在ASP.NET MVC中请求页面时,操作(如果有ViewResult)将呈现该视图,脚本包或
(从视图或其布局)将导致浏览器在处理响应中发送的html时再次请求.js文件

当这个js在客户端上执行时,它将无法访问.resx文件,因此任何使用razor(或aspx)的尝试都将是无效的js

如果您将
内联包含在视图中,它将在服务器上呈现,您将有一个对resx文件的引用,并且您以前的方法将起作用

因为您正在编写内联JavaScript,这有点混乱,所以考虑您的布局的另一个部分视图,它以这种方式与RESX交互来封装所有这些,或者更好地包含消息的.js引用文件。


还有一些其他详细信息。

JavaScript在客户端上执行,服务器上存在一个.resx,因此它可能无法访问它,这取决于您如何组织代码。您使用的服务器代码是什么?ASP.NET、webforms、MVC?剧本在哪里?在一个单独的.js文件中?在视图中的标记中?我使用ASP.NET MVC,并且验证器文件位于Separet文件中。因此,当请求页面时,该操作将生成视图和脚本包,或者将.js文件向下发送,因此当它在客户端上执行时,它将无法访问.resx文件。看看这些问题是的,你是对的。我刚刚把我的验证器放到我的视图文件中,它就可以工作了。我已经详细阐述了,并在适当的回答中加入了一些细节。内联js是一种有点杂乱的方法,可能会让您感到头疼,因此请查看一些正确封装它的方法,例如,如果您在客户端和服务器上使用字符串,则可能会从resx文件生成一个参考js文件。