如何使用asp.net mvc razor在视图中访问全局资源

Posted

技术标签:

【中文标题】如何使用asp.net mvc razor在视图中访问全局资源【英文标题】:How to access global resources in a view using asp.net mvc razor 【发布时间】:2012-07-09 02:07:35 【问题描述】:

使用 ASP.NET MVC Razor,我在 App_GlobalResources 中有一个名为 General.resxGeneral.fr.resx 的资源文件,其名称值对是“Hello”和“Hello”以及“Hello”和“Bonjour”。

我如何从我的角度引用这些?

这些不起作用:

@html.Resource("General.Hello")
@Html.Resource("GlobalResources.Hello")
@Html.Resource("GlobalResources.General.Hello")
@Html.Resource("GlobalResources, General.Hello") 

【问题讨论】:

如果您的资源文件没有显示在视图中,那么您需要这样做holyhoehle.wordpress.com/2010/02/20/… 【参考方案1】:

试试这个,

@Resources.General.Hello

语法:Resources.[ResourceName].[Property]

【讨论】:

我知道这很简单。谢谢! @FiveTools 我不明白你的评论。如果您想要在您的 mvc 应用程序中实现全球化,这是我可以给您的最佳资源adamyan.blogspot.in/2010/02/…。 @Dismissile 你不应该茫然地说我强烈反对这种方法。你应该包括你不鼓励它的原因,所以它会帮助 OP 和其他人(顺便说一句,我真正意识到在 MVC 应用程序中使用 App_GlobalResources/App_LocalResources 的问题)。 对不起 - 马克 - 我正在回应解雇 - 我相信你的方法是最简单和最好的解决方案。 @Dismissile 如果我必须在 15 个不同的视图中使用这个资源,我必须对现有模型创建 15 个不同的更改,然后当另一个开发人员在 6 个月后重新访问源以将“你好”更改为“再见”他们将需要对控制器和视图进行更改。吻。我弄错了吗?【参考方案2】:

你需要引用你的命名空间:

@GeneralResxNamespace.General.Hello

您可以通过将命名空间添加到 /Views/Web.config 文件以更简单的方式执行此操作 在带有命名空间的部分中添加以下部分:

<add namespace="*YourProjectNamespace*.*ResourcesNamespace*.Resources" />

然后你可以使用没有命名空间的资源,如示例中:

General.Hello

【讨论】:

【参考方案3】:

从视图中的资源文件中访问值

添加这个命名空间

@using System

然后像这样显示值

@ResourceFile.Address  (ResouceFile is the name of the ResouceFile)

在使用环境培养线程时使用此方法。

【讨论】:

来自审核队列:我可以请求您在源代码周围添加一些上下文。仅代码的答案很难理解。如果您可以在帖子中添加更多信息,这将对提问者和未来的读者都有帮助。

以上是关于如何使用asp.net mvc razor在视图中访问全局资源的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET MVC 4 Razor 项目的视图中显示集合?

ASP.NEt MVC 使用 Web API 返回 Razor 视图

ASP.NET MVC Razor

MVC-3 ASP.NET 共享视图-重定向-Razor

在 ASP.NET MVC 中:从 Razor 视图调用控制器操作方法的所有可能方式

asp.net mvc3.0中视图引擎razor和ASPX可以交互使用吗