【发布时间】:2013-10-10 09:59:19
【问题描述】:
在对某个 DateTime 模型属性使用“远程”验证属性时,我遇到了以下不良行为。
服务器端,我的应用程序文化定义如下:
protected void Application_PreRequestHandlerExecute()
{
if (!(Context.Handler is IRequiresSessionState)){ return; }
Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-BE");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE");
}
客户端,我的应用程序文化定义如下:
Globalize.culture("nl-BE");
案例一:
-
模型属性
[Remote("IsDateValid", "Home")] public DateTime? MyDate { get; set; } -
控制器动作
public JsonResult IsDateValid(DateTime? MyDate) { // some validation code here return Json(true, JsonRequestBehavior.AllowGet); } - 在调试
IsDateValid方法时,在 UI 中输入的日期为05/10/2013(2013 年 10 月 5 日)被错误地解释为10/05/2013(2013 年 5 月 10 日)
案例 2:
-
模型属性
[Remote("IsDateValid", "Home", HttpMethod = "POST")] public DateTime? MyDate { get; set; } -
控制器动作
[HttpPost] public JsonResult IsDateValid(DateTime? MyDate) { // some validation code here return Json(true); } - 在调试
IsDateValid方法时,在 UI 中输入的日期为05/10/2013(2013 年 10 月 5 日)正确解释为05/10/2013(2013 年 10 月 5 日)
我是否缺少使“标准”GET 远程验证按需要工作的一些配置?
【问题讨论】:
-
调试使用什么文化来解析视图中的日期
标签: c# asp.net-mvc asp.net-mvc-4 internationalization model-binding