VALIDARE E PERSISTERE I DATI
PROGETTARE UNA TASK-BASED UI
Andremo a vedere come si realizza l’inserimento, la modifica e la cancellazione dei dati. Partiamo dal form di inserimento dei corsi, e subito dobbiamo chiederci che dati chiedere all’utente? Se presentiamo tutte insieme le informazioni da inserire, l’utente potrebbe rimanere disorientato con tutta la mole di dati da inserire, allora potremmo spezzare questa mole di dati in Form più piccoli, in modo da far inserire all’utente i dati che servono alla nostra applicazione gradualmente.
Dopo l’inserimento del titolo che è forse l’informazione più importante, metteremo a disposizione un Form di modifica dei dati.
Una volta creato il corso creeremo un Form per l’inserimento delle lezioni.
E la modifica della lezione.
CREARE IL FORM DI INSERIMENTO DATI
Il nome e cognome dell’autore non deve essere assolutamente fornito in questa fase perché ci potrebbe essere un utente malintenzionato cha faccia una impersonificazione. Il nome e cognome sarà inserito all’atto delle fasi di autenticazione e autorizzazione. Quando il docente arriverà su questa maschera avrà fatto il Login; quindi, sapremo chi è, e se è autorizzato a fare il docente nel qual caso dovrà aver fornito un curriculum.
Vediamo prima la View poi il Controller.
Vediamo di capire come funziona il tag asp-for. Diciamo subito che non fa nulla di magico, aggiunge gli attributi name e id; tuttavia, se invece di digitare Title scriviamo TITLE ci verrebbe segnalato un errore in quanto in CourseCreateInputModel non esiste una proprietà con quel nome. L’immagine riportata sotto è il form appena creato.
Abbiamo scritto nel CoursesController due Action aventi lo stesso nome, ma una gestisce le richieste GET del Form; quindi, è quella che fornisce l’input Model alla View rendendola fortemente tipizzata. Nel momento in cui scriviamo qualcosa nella casella di testo e facciamo il Submit del Form viene scatenata una nuova richiesta questa volta in POST coinvolgendo correttamente il meccanismo di Routing in modo che nel parametro inputModel di tipo CourseCreateInputModel leggiamo ciò che ha digitato l’utente.
LINK AL CODICE SU GITHUB
Scaricare il codice della sezione15 o clonare il repository GITHUB per avere a disposizione tutte le sezioni nel tuo editor preferito.
Scrivi un commento