我使用来自http://code52.org/aspnet-internationalization/的Code52的ASP.NET国际化,它使用(语言)资源文件。
从我的控制器中我引用了我想要的字符串
ViewBag.Message = Language.Index_Title;
是否可以直接在(razor)视图中引用这些值?
这样的事情:@Resources.Language.Index_Title;
答案 0 :(得分:10)
在你的web.config中你有“页面”部分......你需要添加你的资源名称空间......这样你就不需要在每个页面中使用“using”来声明它。
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="Your.Resources.Namespace" /> <!--ADD THIS LINE-->
</namespaces>
</pages>
然后,假设您的资源文件名为“语言”,在Razor视图中使用:
@Language.Index_Title
答案 1 :(得分:4)
在自定义工具的属性中修改资源文件,您必须添加值“ PublicResXFileCodeGenerator ”,并且在视图中可以使用资源文件。
答案 2 :(得分:3)
尝试@ ViewContext.HttpContext.GetGlobalResourceObject(classKey,resourceKey)。希望这有帮助