C# 在MVC3应用程序中配置区域性配置
我部署了一个在开发环境中运行良好的MVC3应用程序,这是因为开发机器中的日期格式是dd/mm/yyyy。但是,当应用程序部署到服务器中时,服务器端开始出现无效日期的错误,因为在服务器中,日期的格式是mm/dd/yyyy。现在我的问题是我需要配置服务器吗??或者仅适用于此特定区域性的IIS 7.0??。无论答案是什么,请让我知道我该怎么做。我在windows server 2008 R2和iis 7.5中工作,您可以做些什么来避免代码区域性依赖:C# 在MVC3应用程序中配置区域性配置,c#,asp.net-mvc-3,iis-7.5,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中工作,您可以做些什么来避免代码区域性依赖: 右键单击项目,转到属性->代码分析。打开Micro
CultureInfo.InvariantCulture
确保始终使用相同区域性的最简单方法是在基本控制器中设置该区域性:
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
{
}
日期从哪里来?在开发web应用程序时,您通常根本不应该使用系统的文化-毕竟,它可能与用户不同。日期来自文本输入,jquery的datepicker可以在客户端生成格式,客户端的格式验证也可以正常工作,问题在于服务器端的验证如果输入来自用户,您可能应该使用用户的文化。