ASP.Net  »  Articoli  »  Asp.Net MVC 

Modifica e inserimento dati con ASP.NET MVC

di: Francesco Camarlinghi     23 Aprile 2008

In un precedente articolo abbiamo iniziato a conoscere ASP.NET MVC, un framework disponibile con le ASP.NET 3.5 Extensions che permette di implementare nelle nostre applicazioni il paradigma Model-View-Controller, particolarmente utile per separare la logica di accesso ai dati dalla loro visualizzazione. Ci siamo tuttavia occupati soltanto di quest'ultimo aspetto costruendo un piccolo catalogo dei prodotti come applicazione di esempio.

In questo secondo articolo espanderemo le funzionalità del catalogo aggiungendo le opzioni di modifica e aggiunta di prodotti. Anche in questo caso utilizziamo nomi in inglese per funzioni e pagine, pratica che consiglio a tutti di seguire nei propri progetti per una maggiore compatibilità e facilità di lettura.

Modificare i dati

Iniziamo l'analisi dalla modifica dei dati invece che dal loro inserimento, perché questo ci consente una trattazione più approfondita delle funzionalità messe a disposizione da MVC.

Come già visto per la visualizzazione dei dati, anche l'aggiornamento fa uso degli action methods delle classi Controller per richiamare le View necessarie. In particolare per gestire lo scambio di informazioni con l'utente avremo bisogno di due metodi: il primo, che chiameremo Edit, si occuperà di richiamare la vista incaricata di mostrare il form HTML; il secondo, SaveUpdates, avrà invece il compito di leggere l'input inviato dall'utente e aggiornare di conseguenza il database.

Per separare ulteriormente il livello Controller dal Model aggiungiamo le seguenti funzioni di aiuto all'interno del file ExampleDataContext.cs che contiene anche altre procedure (create nel precedente articolo) per il recupero delle categorie dei prodotti:

public Product GetProductById(int id)
{
  return Products.Single(p => p.ID == id);
}

public void AddProduct(Product p)
{
  Products.InsertOnSubmit(p);
}

La prima procedura estrae un singolo prodotto dal database, mentre l'altra, che utilizzeremo in seguito, si occupa dell'inserimento di un nuovo prodotto.

Vediamo in dettaglio il primo nuovo metodo del Controller:

[ControllerAction]
public void Edit(int id)
{
  Product p = context.GetProductById(id);
  
  RenderView("EditProduct", p);
}

Il funzionamento è molto semplice: il parametro ID (passato al controller attraverso un URL come il seguente:

/Products/Edit/2

contiene il codice per identificare l'articolo che vogliamo modificare. La funzione estrae quindi i dati dal database e li passa alla vista EditProduct:

<form action="<%= Url.Action(new { Action="SaveUpdates", id=ViewData.ID }) %>" method="post">
<div>
  Nome:
  <input name="Name" value="<%= ViewData.Name %>" /></div>
<div>
  Categoria:
  <input name="Name" value="<%= ViewData.CategoryID %>" /></div>
<div>
  <input type="submit" value="Invia!" /></div>
</form>

L'attributo action del form viene generato automaticamente attraverso la funzione Url.Action, il cui funzionamento è già stato trattato nell'articolo introduttivo- Il resto del codice è semplice markup XHTML.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto