3. Web@Work
Model binding
Model binding 竪 il processo di creazione di
oggetti .NET partendo dai dati inviati dal
browser in una richiesta HTTP.
Viene invocato dopo che 竪 stata individuata la
action da eseguire
Consente di mappare tipi primitivi, oggetti,
array, collection e files
I valori vengono ricavati attraverso
ValueProvider
4. Web@Work
Customize Model binding
Ereditando da DefaultModelBinder
Implementando linterfaccia IModelBinder
Creando un ModelBinderProvider
5. Web@Work
Action filters
Gli action filters consentono di inserire alcuni
frammenti di logica, non legati ad una singola
action, ma a pi湛 action e/o pi湛 controller. In tal
modo 竪 possibile evitare di ripetere codice
allinterno delle Action.
Sono di 4 tipi: Authorization, Action,
Result,Exception
Si applicano indistintamente a Controller e/o
Action
6. Web@Work
Action filters
Gli Action Filter vengono eseguiti Subito prima
e subito dopo lesecuzione di un Action
method
I Result Filter vengono eseguiti subito prima e
subito dopo lesecuzione del metodo execute
di un Action Result
7. Web@Work
Customize Action filters
Ereditare da ActionFilterAttribute
Implementare linterfaccia IActionFilter
Implementare linterfaccia IResultFilter
Possibilit di registrare un
ActionFilter/ResultFilter per tutte le action. In
questo caso parliamo di Global Filters
8. Web@Work
ActionResult
Le ActionResult servono a specificare il modo
con cui vogliamo rispondere ad una richiesta
HTTP
Sono customizzabili e possono essere usate,
ad esempio, per generazione di risposte in
formato di PDF, XML ed etc.
La classe di base 竪 ActionResult
Ci sono degli helper method nei controller che
ne facilitano la creazione.
9. Web@Work
Client & Server side validation
La validazione Server deve sempre essere
presente.
Si pu嘆 fare sfruttando:
Il Model Binding;
La Self Validation (IValidatableObject)
Le Data Annotations
10. Web@Work
Client & Server side validation
La validazione client 竪 facoltativa, ma le
moderne applicazioni non possono farne a
meno
Per abilitarla occorre utilizzare le Data
Annotations lato server, implementando per嘆
anche linterfaccia IClientValidatable.
Sul client 竪 costruita sul plugin JQuery
Validation