Uso delle form con ASP.NET MVC

di Daniele Bochicchio, in ASP.NET MVC, C#,

ASP.NET MVC introduce la possibilità di definire il layout in maniera autonoma, senza utilizzare i classici web control tipici di Web Form.
Per informazioni di base su ASP.NET MVC si veda http://mvc.aspitalia.com/

Per consentire la possibilità di definire comunque delle funzionalità in maniera rapida, senza dover implmentare tutto manualmente, sono presenti alcuni metodi aggiuntivi che aiutano nella definizione degli elementi fondamentali di una form:
- BeginForm
- CheckBox
- DropDownList
- EndForm
- Hidden
- ListBox
- Password
- RadioButton
- TextArea
- TextBox

Ad esempio, la più semplice delle form può essere definita in questo modo:

<% Html.BeginForm(); %>
  Nome: <%= Html.TextBox("FirstName");%><br />
  Stato: <%= Html.DropDownList("States", Model.StateList); %><br />
  <input type="submit" value="Test" />
<% Html.EndForm(); %>

Come si può notare, verrà aggiunta una form che fa il post sullo stesso controller invocato, con una TextBox ed una DropDownList che prende dalla proprietà StateList del Model la sorgente dati.

Una possibile alternativa è quella di usare anche questo costrutto:

<% using (Html.BeginForm())
{ %>
  .. form ...
<% } %>

E' anche possibile cambiare l'action a cui far riferimento al submit, perchè il metodo BeginForm accetta come parametro il nome della route, della action, del controller ed il metodo HTTP, più eventualmente attributi custom:

<% Html.BeginForm("TestAction", "TestController", FormMethod.Post); %>
  .. form ..
<% Html.EndForm(); %>

Per intercettare l'invio dei dati della form precedente è necessario creare un Controller chiamato TestController, con questo codice:

public class TestController : Controller
{
  [AcceptVerbs(HttpVerbs.Post)]
  public ActionResult TestAction()
  {
    return(View("TestConfirmed"));
  }
}

All'interno della View chiamata TestConfirmed sarà implementato il codice necessario ad intercettare e processare i valori inviati.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi