2012-02-10 5 views
5

Mi piace davvero l'approccio ASP.NET MVC: annota il modello con gli attributi corrispondenti, MVC lo convalida e aggiorna ModelState.Errors, ModelState è disponibile in Visualizza, quindi è possibile mostrare gli errori a utente.Convalida del modello con NancyFX

Non ho trovato informazioni su wiki come esattamente dovrebbe essere fatto per NancyFX. In sources posso vedere che Nancy sta provando a usare le regole, ma come applicare correttamente e mostrare i fallimenti su Views?

MODIFICA: la domanda è rilevante per Nancy 0.9, in base a @TheCodeJunkie 0.10 verranno applicate le modifiche per quello.

risposta

7

Nella versione con tag corrente (0.9) non abbiamo alcun supporto integrato per la convalida del modello. Tuttavia con la versione 0.10 in sospeso (molto probabilmente questo fine settimana) stiamo aggiungendo il supporto per la validazione del modello e spediremo pacchetti di nuget per l'utilizzo di annotazioni di dati o convalida fluente.

Il ramo principale contiene un progetto demo che mostra come usarli https://github.com/NancyFx/Nancy/tree/master/src/Nancy.Demo.Validation

Naturalmente la roba convalida è estensibile e si possono fornire i propri implementazioni per il quadro di convalida della propria scelta. Il nucleo di Nancy contiene solo una piccola serie di punti di estensibilità e quindi le implementazioni effettive vengono spedite come nuget separati.

La versione 0.10 conterrà i primi elementi costitutivi per consentire la creazione della convalida lato client in base al modello. Tuttavia, il rilascio 0.10 sarà non contenere la roba validazione lato client vero e proprio, ma i ganci per estrarre le informazioni di convalida è là, come mostrato in questo modulo di esempio

https://github.com/NancyFx/Nancy/blob/master/src/Nancy.Demo.Validation/ProductsModule.cs#L16

Spero che questo aiuti!

+0

Quindi, ho capito bene, che devo convalidare manualmente Model all'interno del gestore di azioni e restituire alcuni Model.Errors per mostrarlo? –

+0

Sì, per il momento. Quando avremo cablato il lato client, allora sarà più trasparente. – TheCodeJunkie

+0

Grazie, autorizzato! –