2011-12-22 13 views
45

Ho bisogno di fare un controllo se il mio modello è valido dalla mia vista Razor. Se è valido, voglio essere in grado di mostrare un po 'di HTML.Come posso verificare se il mio modello è valido dalla vista del rasoio?

Come posso fare questo. Voglio qualcosa di simile

@if (Model.IsValid) { 

} 

ma quanto sopra non funziona

+0

Odio chiedermelo, ma perché? L'unico scenario che posso pensare è se non ti è permesso usare la convalida di jQuery per qualche motivo. – Peter

+3

@Peter (e chiunque altro abbia la stessa domanda), immagina di voler produrre un elemento 'div' * ma solo se * le informazioni precedentemente inviate non sono valide, ad es. genera un elemento contenitore per un avviso per le credenziali di accesso non valide. –

+0

@Peter mio caro amico, immagina questo: stai caricando un file e vuoi controllare se ha il formato corretto, puoi farlo su javascript? - No, non puoi! Quindi puoi fare un controllo sul lato server e se fallisce, puoi aggiungere un errore a ModelState per visualizzarlo sulla pagina. –

risposta

74

È possibile verificare se il ModelState è valida, ma tenete a mente che si sta solo controllando la validità del ModelState al momento la richiesta web è stato realizzato:

@if (ViewData.ModelState.IsValid) { 
    ... 
} 

Inoltre, è possibile controllare validatity di una proprietà sul modello nella vista:

@if (ViewData.ModelState.IsValidField("FIELD_NAME")) { 
    ... 
} 
+3

+1 per aver menzionato QUANDO è stato convalidato lo stato del modello. –

+0

'FIELD_NAME' passato a' IsValidField' deve essere ** nome completo ** del campo in relazione all'intera gerarchia ViewModel. –

Problemi correlati