asp.net mvc 3 - trasportare i dati nel model
DESCRIPTION
Il model consente di trasportare le informazioni dal controller alla vista e viceversa, facciamoci aiutare dallo Scaffolding e dagli HtmlHelperTRANSCRIPT
![Page 1: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/1.jpg)
ASP.NET
Sviluppo applicazioni web e linguaggio HTML
LEZIONE 06
Model View Controller
![Page 2: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/2.jpg)
Model
![Page 3: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/3.jpg)
Che cos’è il Model?
![Page 4: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/4.jpg)
Un insieme di classi che
modellano le entità del
dominio applicativo
Domain Model
![Page 5: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/5.jpg)
Solo questo?
![Page 6: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/6.jpg)
… e poi trasporta
le informazioni
dall’interfaccia utente al
database e viceversa
![Page 7: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/7.jpg)
Per realizzare tutto questo
cosa dobbiamo fare?
![Page 8: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/8.jpg)
Dobbiamo …
![Page 9: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/9.jpg)
Dobbiamo …
1 Creare un controller
![Page 10: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/10.jpg)
Dobbiamo …
Aggiungere le action per
creare, modificare e
cancellare
Creare un controller
2
![Page 11: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/11.jpg)
Dobbiamo …
Aggiungere action per
creare, modificare e
cancellare
Creare un controller
3 Creare le viste
![Page 12: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/12.jpg)
Dobbiamo …
Aggiungere action per
creare, modificare e
cancellare
Creare un controller
4
Creare le viste
Aggiungere la logica di
persistenza sul database
![Page 13: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/13.jpg)
In una parola …
![Page 14: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/14.jpg)
![Page 15: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/15.jpg)
Ma come facciamo a
ottenere informazioni
dal client?
![Page 16: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/16.jpg)
In HTML è possibile grazie
al tag form
![Page 17: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/17.jpg)
Il form è un
contenitore di
elementi di
tipo “input”
![Page 18: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/18.jpg)
Tra questi il
pulsante di tipo
submit permette
di inviare i dati
al server
http://wufoo.com/gallery/templat
es/forms/vendor-contact-
information-form/
![Page 19: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/19.jpg)
Quello che si trova all’interno
del tag form al submit viene
impacchettato e spedito al
server in una richiesta POST
![Page 20: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/20.jpg)
Nell’action del controller
leggiamo le informazioni
dalla Request.Form
![Page 21: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/21.jpg)
ma c’è un modo migliore
per farlo …
![Page 22: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/22.jpg)
Se i nomi dei campi del
form riflettono i nomi delle
proprietà …
![Page 23: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/23.jpg)
… possiamo usare lo
stesso codice per
valorizzare il model con i
dati dell’utente!
![Page 24: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/24.jpg)
In ASP.NET c’è una classe
che lo fa per noi …
![Page 25: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/25.jpg)
<form action=“/post/edit/”>
<input type=“hidden” … name=“PostId” />
<input type=“text” … name=“Title”/>
<textarea name=“Body” ... ></textarea>
…
</form>
![Page 26: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/26.jpg)
…
…
![Page 27: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/27.jpg)
Nel compilare la form
possiamo farci aiutare
dagli HtmlHelper
![Page 28: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/28.jpg)
Html.EditorFor
![Page 29: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/29.jpg)
Aggiungiamo al
blog la possibilità
di lasciare dei
commenti sui post
![Page 30: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/30.jpg)
HtmlHelper perché
• Perché ci permettono di sfruttare le
caratteristiche del model
• Facilitano la scrittura dell’HTML
• Aiutano nella validazione degli input
degli utenti
![Page 31: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/31.jpg)
HtmlHelper quando
• Quando il motivo principale è evitare
di scrivere codice HTML
![Page 32: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/32.jpg)
Cosa può succedere se
non controlliamo i dati
inseriti dall’utente?
![Page 33: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/33.jpg)
![Page 34: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/34.jpg)
La validazione degli input
può avvenire:
• Lato server [obbligatorio]
• Lato client [opzionale]
• Su entrambi [consigliato]
![Page 35: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/35.jpg)
Per la validazione ASP.NET
MVC3 si avvale di:
• Data Annotations
• Validation Helpers
![Page 36: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/36.jpg)
Sono attributi che vengono
associati alle proprietà di
una classe del model
Data Annotations
![Page 37: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/37.jpg)
Sono attributi che vengono
associati alle proprietà di
una classe del model
e descrivono quale insieme
di valori sono accettati
Data Annotations
![Page 38: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/38.jpg)
Data Annotations Se poi ci sono errori …
![Page 39: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/39.jpg)
Visualizzano le informazioni
sugli errori di validazione
Validation Helpers
![Page 40: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/40.jpg)
continua …
![Page 41: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/41.jpg)
Slide 6: http://www.flickr.com/photos/14497446@N02/5212627246/
Credits Le immagini contenute in questa presentazione
hanno licenza Creative Commons
![Page 42: ASP.NET MVC 3 - Trasportare i dati nel Model](https://reader034.vdocuments.mx/reader034/viewer/2022051820/55389ab54a7959016b8b4838/html5/thumbnails/42.jpg)
Thank You
MANUEL SCAPOLAN website: www.manuelscapolan.it twitter: manuelscapolan e-mail: [email protected]