HY,
我有一个资源文件,我想在单独的 javascript文件中使用哪些条目,代码如下:
@TestMvc.Resources.Views.Home.Strings.MyString
但是在我的javascript文件中,MVC 5框架不会解释代码行。
如何访问我的资源字符串?
感谢您的帮助:)
答案 0 :(得分:6)
MVC没有处理javascript文件中的资源引用是正常的,因为javascript是在客户端处理的,而MVC处理服务器端的所有内容...... 话虽如此,如果您愿意,我可以想到有三种方法可以解决您的问题......
1)将您的javascript代码包装在单独的.cshtml文件中。
如果这是一个选项,您可以创建一个部分视图,其中只包含对您的资源的引用,以及一个包含您的javascript的脚本标记..之后,您只需在实际中呈现您的局部视图view(就像你要呈现你的javascript文件一样),让MVC在你把它传递给你的客户端之前渲染你的javascript(带有所需的资源)。
您的.cshtml文件示例:
@using TestMvc.Resources.Views.Home
<script type="text/javascript">
$(document).ready(function(){
alert('@Strings.MyString'); //Here you can use your resource string
});
</script>
如果您检查呈现的脚本客户端,您将看到MVC已在您的javascript中插入该字符串。
2)在.cshtml文件的脚本块中的变量中呈现字符串
并在你的.js文件中将它们当作局部变量处理(忽略了告诉你它无法访问未声明的变量的智能感知)
<script type="text/javascript>
var myResourceString= "@Strings.MyString";
</script>
并在你的javascript中
alert(myResourceString);
3)在隐藏字段中渲染字符串,并在javascript中获取值。
如果将所有javascript包装在.cshtml文件中并不是一个选项,您可以随时将资源字符串放在隐藏字段中,如下所示:
<input type="hidden" id="myResourceString" value="@Strings.MyString">
并在你的javascript中
alert(document.getElementById('myResourceString').value);
虽然我输入了这个内容,但我发现该帖子有点陈旧,但对未来的某些人来说可能会有用...
答案 1 :(得分:3)
我认为你不能在JavaScript文件中这样做。
如果你真的想这样做,你应该在Razor页面的内联脚本中编写这段代码。
答案 2 :(得分:-1)
不正确,您可以轻松地在javascript中使用资源。请阅读此帖Accessing Resource Files in MVC 3
如果您有任何问题,请与我们联系。