如何在jQuery验证插件中使用Resources.resx
我想用jQuery验证插件验证一些表单。一切正常,直到我想使用资源文件中的消息 这是我的密码:如何在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
$('#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文件。