特定の 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 日) として入力された日付が (2013 年5 月 10 日)として誤って解釈される10/05/2013
ケース 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 日) として入力された日付が (2013 年 10 月 5 日)として正しく解釈されます。05/10/2013
「標準」の GET リモート検証を希望どおりに機能させるための構成が不足していますか?