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

前端之家收集整理的这篇文章主要介绍了在ASP.NET MVC中公开资源字符串到JavaScript文件的最佳方式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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("\r\n","").Replace("\"","\\\"") + "\"");
    } 
    sb.Append("}");
} 

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

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

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

var resString = CustomersResourceObj[key];

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

原文链接:https://www.f2er.com/aspnet/250330.html

猜你在找的asp.Net相关文章