如何从方法返回asp.net视图中的资源
Posted
技术标签:
【中文标题】如何从方法返回asp.net视图中的资源【英文标题】:How to return resource in asp.net view from method 【发布时间】: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')
.
【参考方案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);
【讨论】:
以上是关于如何从方法返回asp.net视图中的资源的主要内容,如果未能解决你的问题,请参考以下文章
如何将消息从我的存储库类返回到我的控制器,然后返回到我在 asp.net-mvc 中的视图?
asp.net mvc 从视图中的文本框获取数据返回存储过程以编辑记录