VALIDARE E PERSISTERE I DATI

PROGETTARE UNA TASK-BASED UI

NET COREAndremo 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.

Titolo

Dopo l’inserimento del titolo che è forse l’informazione più importante, metteremo a disposizione un Form di modifica dei dati.

Modifica

Una volta creato il corso creeremo un Form per l’inserimento delle lezioni.

Lessons

E la modifica della lezione.

Lessons modifica

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.

Nuovo Corso

Vediamo prima la View poi il Controller.

Create.cshtml
Create 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.

asp-for
Form di Inserimento
Controller

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.

Disambiguazione delle action
Button Create

LINK AL CODICE SU GITHUB

GITHUB

Scaricare il codice della sezione15 o clonare il repository GITHUB per avere a disposizione tutte le sezioni nel tuo editor preferito.