Domanda

Ho un campo DateTime nel mio modello che è mostrato in una forma nella mia vista in questo modo:

<div class="editor-field">
    @Html.EditorFor(model => model.Age)
    @Html.ValidationMessageFor(model => model.Age)
</div>

Quando viene creato e inserito un nuovo modello nel mio database, gli assegno un valore di 09/11/1990 15:36:22. Se provo a modificare questo modello usando la mia vista e non modificare il valore di Age Per il mio modello, il modello è convalidato e qualsiasi modifica ad altri campi viene accettata e salvata. Tuttavia, se cambio il Age campo a 07/27/2010 15:36:22 Sto ricevendo un errore di convalida " The value '07/27/2010 15:36:22' is not valid for Age. Ma la data 09/12/2010 15:36:22 è validato con successo. Qualche motivo per cui sta accadendo? Nel debugger, il valore restituito per le date non valide è 01/01/0001.

EDIT: penso che ciò abbia a che fare con la cultura per JQuery-Validate e il mio sistema, poiché la convalida sul lato client non riesce a qualsiasi data che si trova in formato DD/MM/AAAYY, mentre la convalida lato server non riesce a non riuscire a non rientrare in qualsiasi data in mm /DD/YYYY FORMAT.

È stato utile?

Soluzione

Supponendo che tu voglia far funzionare il modello sul lato client, cambierei le impostazioni di globalizzazione ASP .net per costringere il sistema a utilizzare la globalizzazione che desideri. Questa è davvero una soluzione valida se ti aspetti che i clienti utilizzino il tuo sistema che utilizzino un formato temporale coerente.

Il problema che hai riscontrato (penso) è che alcuni browser non sono coerenti per la globalizzazione che usano il lato cliente e la globalizzazione che presentano al mondo più ampio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top