从剃刀视图引用资源文件

Chr*_*ahn 12 internationalization razor asp.net-mvc-3

我在http://code52.org/aspnet-internationalization/上使用Code52的ASP.NET Internationalization,它使用(语言)资源文件.

从我的控制器我引用我想要的字符串

ViewBag.Message = Language.Index_Title;
Run Code Online (Sandbox Code Playgroud)

是否可以直接在(剃刀)视图中引用这些值?像这样的东西:@Resources.Language.Index_Title;

Rom*_*ias 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>
Run Code Online (Sandbox Code Playgroud)

然后,假设您的资源文件名为"语言",在Razor视图中使用:

@Language.Index_Title
Run Code Online (Sandbox Code Playgroud)

  • 我认为这需要添加到视图web.config,而不是根web.config (2认同)

小智 5

在自定义工具的属性中修改您的资源文件,您必须添加值“ PublicResXFileCodeGenerator ”以及在您的视图中您可以使用资源文件。


Ric*_*rro 3

尝试 @ViewContext.HttpContext.GetGlobalResourceObject(classKey, resourceKey) 。希望这可以帮助