Ich trat folgenden unerwünschten Verhalten bei der Verwendung "Remote" Validierungsattribut für eine bestimmte DateTime Model Eigenschaft.MVC Model Binding für DateTime unterscheidet sich mit GET oder POST
Server-Seite, meine Anwendung Kultur definiert wird, wie unten beschrieben:
protected void Application_PreRequestHandlerExecute()
{
if (!(Context.Handler is IRequiresSessionState)){ return; }
Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-BE");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE");
}
-Client-Seite ist meine Anwendung Kultur definiert, wie unten beschrieben:
Globalize.culture("nl-BE");
Fall 1:
Modell Eigenschaft
[Remote("IsDateValid", "Home")] public DateTime? MyDate { get; set; }
Controller Aktion
public JsonResult IsDateValid(DateTime? MyDate) { // some validation code here return Json(true, JsonRequestBehavior.AllowGet); }
- Während das Debuggen des
IsDateValid
Methode, ein Datum in der Benutzeroberfläche eingegeben als05/10/2013
(5. Oktober 2013) ist falsch interpretiert als10/05/2013
(10. Mai 2013)
Fall 2:
Modell Eigentum
[Remote("IsDateValid", "Home", HttpMethod = "POST")] public DateTime? MyDate { get; set; }
Controller Aktion
[HttpPost] public JsonResult IsDateValid(DateTime? MyDate) { // some validation code here return Json(true); }
- Während das Debuggen des
IsDateValid
Methode, ein Datum in der Benutzeroberfläche als05/10/2013
(5. Oktober 2013) eingetragen ist richtig interpretiert als05/10/2013
(5. Oktober 2013)
Ich vermisse etwas Konfiguration für mak die "Standard" -GET-Fernvalidierung wie gewünscht durchführen?
Debug welcher Kultur verwendet wird, um das Datum in Sicht zu analysieren –