在对某个 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");
情况1:
模型属性
[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 日)
案例二:
模型属性
[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 远程验证按需要工作?