Ho riscontrato un comportamento indesiderato durante l'utilizzo dell'attributo di convalida "Remote" per una determinata proprietà DateTime Model.Il binding del modello MVC per DateTime è diverso utilizzando GET o POST
lato server, la mia cultura Application è definita come descritto di seguito:
protected void Application_PreRequestHandlerExecute()
{
if (!(Context.Handler is IRequiresSessionState)){ return; }
Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-BE");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE");
}
lato client, la mia cultura Application è definita come descritto di seguito:
Globalize.culture("nl-BE");
Caso 1:
Proprietà modello
[Remote("IsDateValid", "Home")] public DateTime? MyDate { get; set; }
azione controller
public JsonResult IsDateValid(DateTime? MyDate) { // some validation code here return Json(true, JsonRequestBehavior.AllowGet); }
- Durante il debug del metodo
IsDateValid
, una data inserita nella UI come05/10/2013
(5 Ottobre 2013) è erroneamente interpretato come10/05/2013
(10 Maggio 2013)
caso 2:
Modello Proprietà
[Remote("IsDateValid", "Home", HttpMethod = "POST")] public DateTime? MyDate { get; set; }
azione controller
[HttpPost] public JsonResult IsDateValid(DateTime? MyDate) { // some validation code here return Json(true); }
- Durante il debug del metodo
IsDateValid
, una data inserita nella UI come05/10/2013
(5 Ottobre 2013) è correttamente interpretato come05/10/2013
(5 Ottobre 2013)
Mi manca qualche configurazione per mak il lavoro di validazione remota "standard" GET come desiderato?
Debug ciò che la cultura viene utilizzato per analizzare la data in vista –