【问题标题】:ASP.NET MVC 4 switch resource file via url parameterASP.NET MVC 4 通过 url 参数切换资源文件
【发布时间】:2013-08-28 16:29:39
【问题描述】:

我是处理资源文件的新手,但我还不完全了解它是如何工作的。现在我需要让我的应用程序的文本以英文和中文提供。我将收到一个 get 参数(例如 lang),然后我需要决定是使用 Language.zh.resx 还是我的默认 Language.resx - 这是我从我一直在阅读的文章中了解到的。现在我有我的视图标题,例如:

 @{
      ViewBag.Title = MyApplication.App_GlobalResources.Language.MyPage_Title;
  }

我不知道在哪里检查参数 lang 并应用它。我看到人们说我应该创建一个动作过滤器的文章,他们在 cookie 中添加了一些东西,他们很困惑。在我的情况下,它可能没有必要,因为它只有一个请求,不需要保存状态,因为一旦加载页面就是这样。

如果有人也可以简要解释一下资源的工作原理,那就太好了,谢谢!

【问题讨论】:

    标签: c# asp.net-mvc resx


    【解决方案1】:

    有几篇文章讨论了使用会话和 URL 变量的全球化和 MVC。我将两者联系起来是因为会话在 deoth 中更多地涵盖了视图,但是无论您是在路由 (/en-us/Controller) 还是使用会话,视图的逻辑都应该保持不变。

    1. Session based Globalization
    2. Routing Based Globalization

    【讨论】:

      【解决方案2】:

      假设你的控制器中有一个字符串 lang,在控制器中你应该改变当前的文化,所以你唯一需要做的就是这样

      var culture = new CultureInfo(lang);
      System.Threading.Thread.CurrentThread.CurrentCulture = culture;
      System.Threading.Thread.CurrentThread.CurrentUICulture = culture;
      

      我建议您通过某些属性执行此步骤,然后将其应用于控制器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-16
        • 2016-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        相关资源
        最近更新 更多