如何在javascript文件中使用资源?

时间:2013-12-12 08:47:42

标签: asp.net-mvc asp.net-mvc-5

HY,

我有一个资源文件,我想在单独的 javascript文件中使用哪些条目,代码如下:

@TestMvc.Resources.Views.Home.Strings.MyString

但是在我的javascript文件中,MVC 5框架不会解释代码行。

如何访问我的资源字符串?

感谢您的帮助:)

3 个答案:

答案 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

如果您有任何问题,请与我们联系。