在MVC3应用程序中配置文化配置

时间:2011-11-08 14:58:17

标签: c# asp.net-mvc-3 iis-7.5

我部署了一个在开发环境中运行良好的MVC3应用程序,这是因为开发机器中的日期格式是dd / mm / yyyy。但是当服务器中的应用程序部署时,服务器端的错误开始无效,因为在服务器中日期格式为mm / dd / yyyy。现在我的问题是我需要配置服务器??或者只针对这种特定文化的IIS 7.0。无论答案是什么,请告诉我如何才能做到这一点。我正在使用Windows Server 2008 R2和iis 7.5

2 个答案:

答案 0 :(得分:2)

确保始终使用相同文化的最简单方法是在基本控制器中设置它:

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    Thread.CurrentThread.CurrentUICulture = 
        Thread.CurrentThread.CurrentCulture = new CultureInfo(1033); //en-us
}

但更实际的方法是创建一个新的动作过滤器:

public class UseEnglishCultureAttribute : ActionFilterAttribute 
{
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    {
        Thread.CurrentThread.CurrentUICulture = 
            Thread.CurrentThread.CurrentCulture = new CultureInfo(1033); //en-us
    }
}

用它标记你的控制器:

[UseEnglishCulture]
public class BaseController : Controller
{
}

答案 1 :(得分:0)

您可以做些什么来不使您的代码文化依赖:

  1. 右键单击您的项目,然后转到属性 - >代码分析。启用Microsoft全球化规则,并分析您的代码。

  2. 它会为您使用DateTime的所有地方提供警告,并且未指定文化。对于那些应该是独立格式的,请添加CultureInfo.InvariantCulture