Rob*_*ski 7 asp.net-mvc asp.net-mvc-5
HY,
我有一个资源文件,我想在我的单独的 javascript文件中使用哪些条目,代码如下:
@TestMvc.Resources.Views.Home.Strings.MyString
Run Code Online (Sandbox Code Playgroud)
但是在我的javascript文件中,MVC 5框架不会解释代码行.
如何访问我的资源字符串?
感谢帮助 :)
MVC没有处理javascript文件中的资源引用是正常的,因为javascript是在客户端处理的,而MVC处理服务器端的所有内容......也就是说,我可以想到有三种方法可以如果你想...解决你的问题
1)将您的javascript代码包装在单独的.cshtml文件中.
如果这是一个选项,您可以创建一个部分视图,其中只包含对您的资源的引用,以及一个包含您的javascript的脚本标记..之后,您只需在实际视图中呈现您的局部视图(只是就像你将渲染你的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>
Run Code Online (Sandbox Code Playgroud)
如果检查呈现的脚本客户端,您将看到MVC已在您的javascript中插入了该字符串.
2)在.cshtml文件的脚本块中的变量中呈现字符串
并在你的.js文件中将它们视为局部变量(忽略告诉你它无法访问未声明的变量的intellisense)
<script type="text/javascript>
var myResourceString= "@Strings.MyString";
</script>
Run Code Online (Sandbox Code Playgroud)
并在您的JavaScript中
alert(myResourceString);
Run Code Online (Sandbox Code Playgroud)
3)在隐藏字段中渲染字符串,并在javascript中获取值.
如果将所有javascript包装在.cshtml文件中不是一个选项,您始终可以将资源字符串放在隐藏字段中,如下所示:
<input type="hidden" id="myResourceString" value="@Strings.MyString">
Run Code Online (Sandbox Code Playgroud)
并在您的JavaScript中
alert(document.getElementById('myResourceString').value);
Run Code Online (Sandbox Code Playgroud)
当我输入这个时,我发现帖子有点旧,但它可能对将来的某个人有用...
| 归档时间: |
|
| 查看次数: |
11772 次 |
| 最近记录: |