MVC3 为每个请求改变文化的正确方法

发布于 2025-01-07 16:05:41 字数 446 浏览 0 评论 0原文

我正在使用 MVC3,并且有一些改变文化的逻辑,一切都很好。我的问题是,似乎有一些地方应该进行这种更改,但我不确定哪里是最好的地方。

一些示例显示了在控制器内对每个操作进行覆盖,如下所示:

protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
    // code to change culture
}

而我习惯看到的更传统的方法是在 Global.asax 文件中执行此操作,如下所示:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    // code to change culture
}

建议在哪里执行此操作?

I am using MVC3, and have some logic for changing the culture which all works fine. My issue, is that there seems a few places where this change should be made, and I am unsure where would be the best place to do it.

Some examples show an override on each action, from within a controller like this:

protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
    // code to change culture
}

Whereas a more traditional way that I am used to seeing is doing it in the Global.asax file as follows:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    // code to change culture
}

What is the recommended place to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

超可爱的懒熊 2025-01-14 16:05:41

global.asax 是执行此操作的 ASP.NET 正确方法。它可以跨框架(Web 表单、动态数据、MVC)工作。

global.asax is the ASP.NET correct way of doing this. It works across frameworks (webforms, dynamic data,mvc).

一影成城 2025-01-14 16:05:41

Application_BeginRequest 没问题。如果您在那里的线程上设置区域性,则整个 HTTP 请求将在该区域性中执行。

Thread.CurrentThread.CurrentCulture = new CultureInfo(myCulture);

Application_BeginRequest is fine. If you set the culture on the thread there, the whole HTTP Request will be executed in that culture.

Thread.CurrentThread.CurrentCulture = new CultureInfo(myCulture);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文