【问题标题】:How to return resource in asp.net view from method如何从方法返回asp.net视图中的资源
【发布时间】:2018-11-28 13:56:31
【问题描述】:

我有一些 html 代码想用资源中的文本替换。

我的班级看起来像:

 public static class ResourceParser
    {
        public static string GetTextFromResource(string keyValue)
        {
            ResourceManager rm = new ResourceManager("pl", Assembly.GetExecutingAssembly());

            return rm.GetString(keyValue);
        }
    }

当我以这种方式从我的视图中访问资源时:

@Resources.pl.accept;

它可以工作并显示我想要的值。

当我这样做时:

@ResourceParser.GetTextFromResource("accept");

有一个例外

MissingManifestResourceException "找不到 任何适合特定文化或中立文化的资源 文化。确保“Servers.Resources.resources”正确无误 在编译时嵌入或链接到程序集“myProject”中,或者 所需的所有附属程序集都是可加载且完全签名的。”

【问题讨论】:

  • 资源文件的名称是什么,文件路径是什么?
  • 看看this link 是否有帮助。还不能作为答案发布,因为那只是猜测
  • @Andrei 我已更改为嵌入式资源,但仍然出现同样的问题。现在以前工作的部分不起作用:P
  • @Haldo 资源文件名为 pl.resx。资源文件实际上在不同的项目中
  • 项目的命名空间是什么?我认为它应该使用完整的命名空间加载:new ResourceManager('Full.Namespace.WithoutExtension').

标签: c# asp.net-mvc


【解决方案1】:

它以某种方式开始工作。

同时我添加了这个方法:

 protected void Application_AcquireRequestState(object sender, EventArgs e)
        {
            if (Request.UserLanguages != null)
            {
                string culture = Request.UserLanguages[0];

                Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(culture);
                Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(culture);
            }
        }

到我的 Global.asax.cs 文件

我对代码做了一些改动:

public static string GetTextFromResource(string keyValue)
        {
            var path = "ProjectName.Folder.pl";

            var res_manager = new ResourceManager(path, typeof(pl).Assembly);

            return res_manager.GetString(keyValue);
        }

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多