我想用jQuery Validation Plugin验证一些表单。一切都很好,直到我想使用Resources文件中的消息。
这是我的代码:
$('#myform').validate({
rules: {
test1: {
required: true,
},
messages: {
test1: {
required: "simple string works",
},
});
我试过把
'@Html.Raw(Resources.testRes)'
'@Resources.testRes'
'Resources.testRes'
答案 0 :(得分:2)
在ASP.NET MVC中请求页面时,操作(如果它有ViewResult)将呈现视图和脚本包或<script src="path">
(来自视图或其布局)将导致浏览器生成在处理响应中发送的html时,对.js文件的另一个请求。
当这个js在客户端上执行时,它将无法访问.resx文件,因此任何使用razor(或aspx)的尝试都只是无效的js。
如果您在视图中包含<script></script>
内联,它将在服务器上呈现,您将获得对resx文件的引用,并且您之前的方法将起作用。
由于你正在编写内联javascript,这有点混乱,所以考虑你的布局中的另一个局部视图,以这种方式与resx交互以封装所有这些,或者更好的是包含消息的.js参考文件
还有一些其他stackoverflow questions about js and resx了解详情。