如何使用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.resx
和 General.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 视图