首页 > 解决方案 > 如何从方法返回asp.net视图中的资源

问题描述

我有一些 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”中,或者所需的所有附属程序集都是可加载的并且完全签署。”

标签: c#asp.net-mvc

解决方案


它开始以某种方式工作。

同时我添加了这个方法:

 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);
        }

推荐阅读