我部署了一个在开发环境中运行良好的MVC3应用程序,这是因为开发机器中的日期格式是dd / mm / yyyy。但是当服务器中的应用程序部署时,服务器端的错误开始无效,因为在服务器中日期格式为mm / dd / yyyy。现在我的问题是我需要配置服务器??或者只针对这种特定文化的IIS 7.0。无论答案是什么,请告诉我如何才能做到这一点。我正在使用Windows Server 2008 R2和iis 7.5
答案 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)
您可以做些什么来不使您的代码文化依赖:
右键单击您的项目,然后转到属性 - >代码分析。启用Microsoft全球化规则,并分析您的代码。
它会为您使用DateTime的所有地方提供警告,并且未指定文化。对于那些应该是独立格式的,请添加CultureInfo.InvariantCulture