Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Gestire i form con ASP.NET MVC

Le azioni e le convenzioni implicate nell'impostazione di un form
Le azioni e le convenzioni implicate nell'impostazione di un form
Link copiato negli appunti

Finora ci siamo occupati della visualizzazione delle informazioni. Aiutandoci con il codice di esempio della galleria di immagini vediamo ora come implentare un form HTML all'interno di una vista e gestire il POST dei dati.

Per raccogliere i dati ci serviremo di due azioni distinte all'interno del nostro controller:

  • fornire gli elementi di input per l'utente
  • ricevere ed elaborare i dati contenuti nella richiesta HTTP POST e resituire all'utente eventuali notifiche di successo o di errore
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Edit(int id)
{
  // fornisce gli elementi di input 
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection values)
{
  // elabora i dati
}

Entrambe le azioni hanno lo stesso nome e sono pertanto associate dal meccanismo di routing allo stesso URL (/Gallery/Edit/[id]) ma, grazie all'attributo AcceptVerbs con cui sono state decorate, rispondono a due diverse richieste HTTP: GET nel primo caso e POST nel secondo.

Utilizzare lo stesso URL differenziando il risultato in base al metodo HTTP utilizzato può sembrare un'operazione inutile in quanto avremmo potuto ottenere lo stesso risultato utilizzando due azioni chiamate in modo diverso, ad esempio /Gallery/Edit/[id] e /Gallery/EditSave/[id].

Mantenere lo stesso URL è una convenzione, e fa si che l'utente non possa accedere direttamente alla seconda pagina (ad esempio utilizzando un URL salvato tra i preferiti) senza aver prima inviato i dati necessari al server. I motori di ricerca inoltre non indicizzeranno il secondo URL all'interno della propria cache, rendendo di fatto accessibile soltanto la pagina contentente il form vuoto.

Ti consigliamo anche