加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在ASP.NET MVC中公开资源字符串到JavaScript文件的最佳方式?

发布时间:2020-12-15 23:24:51 所属栏目:asp.Net 来源:网络整理
导读:在Razor视图中使用资源字符串(.resx)很容易,但是如何在 JavaScript文件中执行?目前,我手动将字符串从Razor视图传递给JavaScript构造函数参数中的脚本,但我想要一种更自动的方法,所以我不必传递我需要的每个资源字符串. 解决方法 我使用的解决方案是使用Razo
在Razor视图中使用资源字符串(.resx)很容易,但是如何在 JavaScript文件中执行?目前,我手动将字符串从Razor视图传递给JavaScript构造函数参数中的脚本,但我想要一种更自动的方法,所以我不必传递我需要的每个资源字符串.

解决方法

我使用的解决方案是使用Razor创建一个json对象,该对象包含给定应用程序区域的所有资源字符串,例如“Customers”.像这样:
<script  type="text/jscript">

@{

    ResourceSet resourceSet = JsCustomersRes.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture,true,true);
    var sbInitial = " var CustomersResourceObj = {"; 
    var sb = new StringBuilder(sbInitial);
    var resEnum = resourceSet.GetEnumerator(); 
    while (resEnum.MoveNext()) 
    {
        if (sb.ToString() != sbInitial)
        {
            sb.Append(",");
        }
        sb.Append(""" + resEnum.Key + "":"" + resEnum.Value.ToString().Replace("rn","").Replace(""",""") + """);
    } 
    sb.Append("}");
} 

@(Html.Raw( sb.ToString()));

资源文件“JsCustomersRes”可以与特定的控制器视图目录一起放置在共享视图目录中.
它应该在文件高级属性中设置“自定义工具”为“PublicResXFileCodeGenerator”.

然后,您可以从脚本中的json对象获取资源字符串:

var resString = CustomersResourceObj[key];

其中“key”是您想要的资源字符串的关键字符串.只需将剃须刀作为部分视图添加到布局页面或单独的页面,就可以了,就是这样!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读