Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Stephen Walther compila un'intera applicazione MVC basata su database ASP.NET dall'inizio alla fine. Questa esercitazione è un'ottima introduzione per gli utenti che non hanno esperienza con ASP.NET MVC Framework e vogliono avere un'idea del processo di creazione di un'applicazione MVC ASP.NET.
Lo scopo di questa esercitazione è quello di dare un'idea di "che cos'è" per creare un'applicazione MVC ASP.NET. In questa esercitazione viene completata la creazione di un'intera applicazione MVC ASP.NET dall'inizio alla fine. Viene illustrato come creare una semplice applicazione basata su database che illustra come elencare, creare e modificare i record di database.
Per semplificare il processo di compilazione dell'applicazione, si useranno le funzionalità di scaffolding di Visual Studio 2008. Visual Studio genererà il codice e il contenuto iniziali per controller, modelli e visualizzazioni.
Se si è lavorato con pagine active server o ASP.NET, è consigliabile trovare ASP.NET MVC molto familiare. ASP.NET le visualizzazioni MVC sono molto simili alle pagine di un'applicazione Active Server Pages. Analogamente a un'applicazione Web Forms ASP.NET tradizionale, ASP.NET MVC offre l'accesso completo al set completo di linguaggi e classi forniti da .NET Framework.
Spero che questa esercitazione ti darà un'idea di come l'esperienza di creazione di un'applicazione MVC ASP.NET sia simile e diversa dall'esperienza di creazione di un'applicazione Active Server Pages o Web Forms ASP.NET.
Panoramica dell'applicazione Database di film
Poiché l'obiettivo è mantenere le cose semplici, verrà creata un'applicazione Movie Database molto semplice. La semplice applicazione Movie Database consentirà di eseguire tre operazioni:
- Elencare un set di record del database di film
- Creare un nuovo record di database film
- Modificare un record di database di film esistente
Anche in questo caso, poiché si vuole mantenere le cose semplici, si userà il numero minimo di funzionalità del framework MVC ASP.NET necessario per compilare l'applicazione. Ad esempio, non verrà sfruttato lo sviluppo basato su test.
Per creare l'applicazione, è necessario completare ognuno dei passaggi seguenti:
- Creare il progetto di applicazione Web MVC ASP.NET
- Creare il database
- Creare il modello di database
- Creare il controller MVC ASP.NET
- Creare le visualizzazioni MVC ASP.NET
Operazioni preliminari
Per compilare un'applicazione MVC ASP.NET è necessario Visual Studio 2008 o Visual Web Developer 2008 Express. È anche necessario scaricare il framework MVC ASP.NET.
Se Visual Studio 2008 non è proprietario, è possibile scaricare una versione di valutazione di 90 giorni di Visual Studio 2008 da questo sito Web:
https://msdn.microsoft.com/vs2008/products/cc268305.aspx
In alternativa, è possibile creare ASP.NET applicazioni MVC con Visual Web Developer Express 2008. Se si decide di usare Visual Web Developer Express, è necessario aver installato Service Pack 1. È possibile scaricare Visual Web Developer 2008 Express con Service Pack 1 da questo sito Web:
Dopo aver installato Visual Studio 2008 o Visual Web Developer 2008, è necessario installare il framework MVC ASP.NET. È possibile scaricare il framework MVC ASP.NET dal sito Web seguente:
Nota
Anziché scaricare il framework ASP.NET e il framework MVC ASP.NET singolarmente, è possibile sfruttare il programma di installazione della piattaforma Web. Il programma di installazione della piattaforma Web è un'applicazione che consente di gestire facilmente le applicazioni installate nel computer.
Creazione di un progetto di applicazione Web MVC ASP.NET
Per iniziare, creare un nuovo progetto di applicazione Web MVC ASP.NET in Visual Studio 2008. Selezionare l'opzione di menu File, Nuovo progetto e verrà visualizzata la finestra di dialogo Nuovo progetto nella figura 1. Selezionare Visual Basic come linguaggio di programmazione e selezionare il modello di progetto applicazione Web MVC ASP.NET. Assegnare al progetto il nome MovieApp e fare clic sul pulsante OK.
Figura 01: Finestra di dialogo Nuovo progetto (fare clic per visualizzare l'immagine a dimensione intera)
Assicurarsi di selezionare .NET Framework 3.5 nell'elenco a discesa nella parte superiore della finestra di dialogo Nuovo progetto o che il modello di progetto applicazione Web MVC ASP.NET non venga visualizzato.
Ogni volta che si crea un nuovo progetto applicazione Web MVC, Visual Studio richiede di creare un progetto di unit test separato. Verrà visualizzata la finestra di dialogo nella figura 2. Poiché in questa esercitazione non verranno creati test a causa di vincoli di tempo (e sì, dovremmo sentirci un po' in colpa) selezionare l'opzione No e fare clic sul pulsante OK .
Nota
Visual Web Developer non supporta i progetti di test.
Figura 02: Finestra di dialogo Crea progetto unit test (fare clic per visualizzare l'immagine a dimensione intera)
Un'applicazione MVC ASP.NET include un set standard di cartelle: una cartella Models, Views e Controllers. È possibile visualizzare questo set standard di cartelle nella finestra Esplora soluzioni. Per creare l'applicazione Movie Database, è necessario aggiungere file a ognuna delle cartelle Modelli, Visualizzazioni e Controller.
Quando si crea una nuova applicazione MVC con Visual Studio, si ottiene un'applicazione di esempio. Poiché si vuole iniziare da zero, è necessario eliminare il contenuto per questa applicazione di esempio. È necessario eliminare il file seguente e la cartella seguente:
- Controllers\HomeController.vb
- Views\Home
Creazione del database
È necessario creare un database per contenere i record del database dei film. Fortunatamente, Visual Studio include un database gratuito denominato SQL Server Express. Per creare il database, seguire questa procedura:
- Fare clic con il pulsante destro del mouse sulla cartella App_Data nella finestra Esplora soluzioni e scegliere l'opzione di menu Aggiungi, Nuovo elemento.
- Selezionare la categoria Dati e selezionare il modello di database di SQL Server (vedere la figura 3).
- Assegnare al nuovo database il nome MoviesDB.mdf e fare clic sul pulsante Aggiungi .
Dopo aver creato il database, è possibile connettersi al database facendo doppio clic sul file MoviesDB.mdf che si trova nella cartella App_Data. Facendo doppio clic sul file MoviesDB.mdf si apre la finestra Esplora server.
Nota
La finestra Esplora server è denominata finestra Esplora database nel caso di Visual Web Developer.
Figura 03: Creazione di un database di Microsoft SQL Server (fare clic per visualizzare l'immagine a dimensione intera)
Successivamente, è necessario creare una nuova tabella di database. Nella finestra Esplora Sever fare clic con il pulsante destro del mouse sulla cartella Tabelle e scegliere l'opzione di menu Aggiungi nuova tabella. Se si seleziona questa opzione di menu, viene aperta la finestra di progettazione tabelle di database. Creare le colonne di database seguenti:
Nome colonna | Tipo di dati | Consenti valori NULL |
---|---|---|
ID. | Int | Falso |
Title | Nvarchar (100) | Falso |
Responsabile | Nvarchar (100) | Falso |
DateReleased | Data/Ora | Falso |
La prima colonna, la colonna Id, ha due proprietà speciali. Prima di tutto, è necessario contrassegnare la colonna ID come colonna chiave primaria. Dopo aver selezionato la colonna ID, fare clic sul pulsante Imposta chiave primaria (si tratta dell'icona simile a una chiave). In secondo luogo, è necessario contrassegnare la colonna ID come colonna Identity. Nella Finestra Proprietà Colonna scorrere verso il basso fino alla sezione Specifica identità ed espanderla. Modificare la proprietà Is Identity impostando il valore Sì. Al termine, la tabella dovrebbe essere simile alla figura 4.
Figura 04: Tabella di database Movies (Fare clic per visualizzare l'immagine a dimensione intera)
Il passaggio finale consiste nel salvare la nuova tabella. Fare clic sul pulsante Salva (icona del floppy) e assegnare alla nuova tabella il nome Film.
Dopo aver creato la tabella, aggiungere alcuni record di film alla tabella. Fare clic con il pulsante destro del mouse sulla tabella Movies nella finestra Esplora server e scegliere l'opzione di menu Mostra dati tabella. Immettere un elenco dei film preferiti (vedere la figura 5).
Figura 05: Immissione di record di film (fare clic per visualizzare l'immagine a dimensione intera)
Creazione del modello
Successivamente è necessario creare un set di classi per rappresentare il database. È necessario creare un modello di database. Microsoft Entity Framework consente di generare automaticamente le classi per il modello di database.
Nota
Il framework ASP.NET MVC non è associato a Microsoft Entity Framework. È possibile creare classi di modelli di database sfruttando un'ampia gamma di strumenti OR/M (Object Relational Mapping), tra cui LINQ to SQL, Subsonic e NHibernate.
Per avviare la Procedura guidata Entity Data Model, seguire questa procedura:
- Fare clic con il pulsante destro del mouse sulla cartella Modelli nella finestra Esplora soluzioni e scegliere l'opzione di menu Aggiungi, Nuovo elemento.
- Selezionare la categoria Dati e selezionare il modello ADO.NET Entity Data Model.
- Assegnare al modello di dati il nome MoviesDBModel.edmx e fare clic sul pulsante Aggiungi .
Dopo aver fatto clic sul pulsante Aggiungi, viene visualizzata la Creazione guidata modello di dati di entità (vedere la figura 6). Per completare la procedura guidata, seguire questa procedura:
- Nel passaggio Scegli contenuto modello selezionare l'opzione Genera dal database.
- Nel passaggio Scegli connessione dati usare la connessione dati MoviesDB.mdf e il nome MoviesDBEntities per le impostazioni di connessione. Fare clic sul pulsante Avanti.
- Nel passaggio Scegli oggetti di database espandere il nodo Tabelle, selezionare la tabella Film. Immettere lo spazio dei nomi MovieApp.Models e fare clic sul pulsante Fine .
Figura 06: Generazione di un modello di database con la Creazione guidata modello di dati di entità (fare clic per visualizzare l'immagine a dimensione intera)
Dopo aver completato la Creazione guidata modello di dati di entità, viene aperto Entity Data Model Designer. La finestra di progettazione dovrebbe visualizzare la tabella di database Movies (vedere la figura 7).
Figura 07: Entity Data Model Designer (Fare clic per visualizzare l'immagine a dimensione intera)
È necessario apportare una modifica prima di continuare. La Creazione guidata dati entità genera una classe di modello denominata Movies che rappresenta la tabella di database Movies. Poiché si userà la classe Movies per rappresentare un determinato film, è necessario modificare il nome della classe in modo che sia Movie anziché Movies (singolare anziché plurale).
Fare doppio clic sul nome della classe nell'area di progettazione e modificare il nome della classe da Movies a Movie. Dopo aver apportato questa modifica, fare clic sul pulsante Salva (l'icona del disco floppy) per generare la classe Movie.
Creazione del controller MVC ASP.NET
Il passaggio successivo consiste nel creare il controller MVC ASP.NET. Un controller è responsabile del controllo dell'interazione di un utente con un'applicazione MVC ASP.NET.
Seguire questa procedura:
- Nella finestra Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Controller e scegliere l'opzione di menu Aggiungi, Controller.
- Nella finestra di dialogo Aggiungi controller immettere il nome HomeController e selezionare la casella di controllo Add action methods for Create, Update e Details scenarios (vedere la figura 8).
- Fare clic sul pulsante Aggiungi per aggiungere il nuovo controller al progetto.
Dopo aver completato questi passaggi, viene creato il controller nell'elenco 1. Si noti che contiene metodi denominati Index, Details, Create e Edit. Nelle sezioni seguenti si aggiungerà il codice necessario per ottenere il funzionamento di questi metodi.
Figura 08: Aggiunta di un nuovo controller MVC ASP.NET (fare clic per visualizzare l'immagine a dimensione intera)
Elenco 1 - Controller\HomeController.vb
Public Class HomeController
Inherits System.Web.Mvc.Controller
'
' GET: /Home/
Function Index() As ActionResult
Return View()
End Function
'
' GET: /Home/Details/5
Function Details(ByVal id As Integer) As ActionResult
Return View()
End Function
'
' GET: /Home/Create
Function Create() As ActionResult
Return View()
End Function
'
' POST: /Home/Create
<AcceptVerbs(HttpVerbs.Post)> _
Function Create(ByVal collection As FormCollection) As ActionResult
Try
' TODO: Add insert logic here
Return RedirectToAction("Index")
Catch
Return View()
End Try
End Function
'
' GET: /Home/Edit/5
Function Edit(ByVal id As Integer) As ActionResult
Return View()
End Function
'
' POST: /Home/Edit/5
<AcceptVerbs(HttpVerbs.Post)> _
Function Edit(ByVal id As Integer, ByVal collection As FormCollection) As ActionResult
Try
' TODO: Add update logic here
Return RedirectToAction("Index")
Catch
Return View()
End Try
End Function
End Class
Elenco dei record di database
Il metodo Index() del controller Home è il metodo predefinito per un'applicazione MVC ASP.NET. Quando si esegue un'applicazione MVC ASP.NET, il metodo Index() è il primo metodo controller chiamato.
Si userà il metodo Index() per visualizzare l'elenco dei record della tabella di database Movies. Si useranno le classi del modello di database create in precedenza per recuperare i record del database dei film con il metodo Index().
Ho modificato la classe HomeController nell'elenco 2 in modo che contenga un nuovo campo privato denominato _db. La classe MoviesDBEntities rappresenta il modello di database e verrà usata questa classe per comunicare con il database.
Ho modificato anche il metodo Index() nell'elenco 2. Il metodo Index() usa la classe MoviesDBEntities per recuperare tutti i record dei film dalla tabella di database Movies. Espressione _db. MovieSet.ToList() restituisce un elenco di tutti i record dei film della tabella di database Movies.
L'elenco dei film viene passato alla visualizzazione. Tutto ciò che viene passato al metodo View() viene passato alla visualizzazione come dati di visualizzazione.
Elenco 2 : controller/HomeController.vb (metodo Index modificato)
Public Class HomeController
Inherits System.Web.Mvc.Controller
Private _db As New MoviesDBEntities()
Function Index() As ActionResult
Return View(_db.MovieSet.ToList())
End Function
End Class
Il metodo Index() restituisce una vista denominata Index. È necessario creare questa visualizzazione per visualizzare l'elenco dei record del database dei film. Seguire questa procedura:
È consigliabile compilare il progetto (selezionare l'opzione di menu Compila, Compila soluzione) prima di aprire la finestra di dialogo Aggiungi visualizzazione o non verranno visualizzate classi nell'elenco a discesa Visualizza classe dati.
- Fare clic con il pulsante destro del mouse sul metodo Index() nell'editor di codice e scegliere l'opzione di menu Aggiungi visualizzazione (vedere la figura 9).
- Nella finestra di dialogo Aggiungi visualizzazione verificare che sia selezionata la casella di controllo Crea una visualizzazione fortemente tipizzata.
- Nell'elenco a discesa Visualizza contenuto selezionare il valore Elenco.
- Nell'elenco a discesa Visualizza classe dati selezionare il valore MovieApp.Movie.
- Fare clic sul pulsante Aggiungi per creare la nuova visualizzazione (vedere la figura 10).
Dopo aver completato questi passaggi, viene aggiunta una nuova visualizzazione denominata Index.aspx alla cartella Views\Home. Il contenuto della visualizzazione Indice è incluso nell'elenco 3.
Figura 09: Aggiunta di una visualizzazione da un'azione del controller (fare clic per visualizzare l'immagine a dimensione intera)
Figura 10: Creazione di una nuova visualizzazione con la finestra di dialogo Aggiungi visualizzazione (fare clic per visualizzare l'immagine a dimensione intera)
<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of IEnumerable (Of MovieApp.Movie))" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Index</h2>
<p>
<%=Html.ActionLink("Create New", "Create")%>
</p>
<table>
<tr>
<th></th>
<th>
Id
</th>
<th>
Title
</th>
<th>
Director
</th>
<th>
DateReleased
</th>
</tr>
<% For Each item In Model%>
<tr>
<td>
<%=Html.ActionLink("Edit", "Edit", New With {.id = item.Id})%> |
<%=Html.ActionLink("Details", "Details", New With {.id = item.Id})%>
</td>
<td>
<%= Html.Encode(item.Id) %>
</td>
<td>
<%= Html.Encode(item.Title) %>
</td>
<td>
<%= Html.Encode(item.Director) %>
</td>
<td>
<%= Html.Encode(String.Format("{0:g}", item.DateReleased)) %>
</td>
</tr>
<% Next%>
</table>
</asp:Content>
Nella visualizzazione Indice vengono visualizzati tutti i record dei film della tabella di database Movies all'interno di una tabella HTML. La visualizzazione contiene un ciclo For Each che scorre ogni filmato rappresentato dalla proprietà ViewData.Model. Se si esegue l'applicazione premendo F5, verrà visualizzata la pagina Web nella figura 11.
Figura 11: Visualizzazione indice (fare clic per visualizzare l'immagine a dimensione intera)
Creazione di nuovi record di database
La vista Indice creata nella sezione precedente include un collegamento per la creazione di nuovi record di database. Si procederà e si implementerà la logica e si creerà la vista necessaria per la creazione di nuovi record di database di film.
Il controller Home contiene due metodi denominati Create(). Il primo metodo Create() non ha parametri. Questo overload del metodo Create() viene utilizzato per visualizzare il modulo HTML per la creazione di un nuovo record di database film.
Il secondo metodo Create() ha un parametro FormCollection. Questo overload del metodo Create() viene chiamato quando il modulo HTML per la creazione di un nuovo filmato viene inviato al server. Si noti che questo secondo metodo Create() ha un attributo AcceptVerbs che impedisce la chiamata del metodo a meno che non venga eseguita un'operazione HTTP Post.
Questo secondo metodo Create() è stato modificato nella classe HomeController aggiornata nell'elenco 4. La nuova versione del metodo Create() accetta un parametro Movie e contiene la logica per l'inserimento di un nuovo film nella tabella di database Movies.
Nota
Si noti l'attributo Bind. Poiché non si vuole aggiornare la proprietà Movie Id dal modulo HTML, è necessario escludere in modo esplicito questa proprietà.
Elenco 4 : Controllers\HomeController.vb (metodo Create modificato)
Function Create() As ActionResult
Return View()
End Function
<AcceptVerbs(HttpVerbs.Post)> _
Function Create(<_bind28_exclude3a_3d_22_id22_29_> ByVal movieToCreate As Movie) As ActionResult
If Not ModelState.IsValid Then
Return View()
End If
_db.AddToMovieSet(movieToCreate)
_db.SaveChanges()
Return RedirectToAction("Index")
End Function
<!--_bind28_exclude3a_3d_22_id22_29_-->
Visual Studio semplifica la creazione del modulo per la creazione di un nuovo record di database di film (vedere la figura 12). Seguire questa procedura:
- Fare clic con il pulsante destro del mouse sul metodo Create() nell'editor di codice e scegliere l'opzione di menu Aggiungi visualizzazione.
- Verificare che la casella di controllo crea una visualizzazione fortemente tipizzata sia selezionata.
- Nell'elenco a discesa Visualizza contenuto selezionare il valore Crea.
- Nell'elenco a discesa Visualizza classe dati selezionare il valore MovieApp.Movie.
- Fare clic sul pulsante Aggiungi per creare la nuova visualizzazione.
Figura 12: Aggiunta della visualizzazione Crea (fare clic per visualizzare l'immagine a dimensione intera)
Visual Studio genera automaticamente la visualizzazione nell'elenco 5. Questa visualizzazione contiene un modulo HTML che include campi che corrispondono a ognuna delle proprietà della classe Movie.
Presentazione 5 – Views\Home\Create.aspx
<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of MovieApp.Movie)" %>
<asp:Content ID="Content3" ContentPlaceHolderID="TitleContent" runat="server">
Create
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="MainContent" runat="server">
<h2>Create</h2>
<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<% Using Html.BeginForm()%>
<fieldset>
<legend>Fields</legend>
<p>
<label for="Id">Id:</label>
<%= Html.TextBox("Id") %>
<%= Html.ValidationMessage("Id", "*") %>
</p>
<p>
<label for="Title">Title:</label>
<%= Html.TextBox("Title") %>
<%= Html.ValidationMessage("Title", "*") %>
</p>
<p>
<label for="Director">Director:</label>
<%= Html.TextBox("Director") %>
<%= Html.ValidationMessage("Director", "*") %>
</p>
<p>
<label for="DateReleased">DateReleased:</label>
<%= Html.TextBox("DateReleased") %>
<%= Html.ValidationMessage("DateReleased", "*") %>
</p>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% End Using %>
<div>
<%=Html.ActionLink("Back to List", "Index") %>
</div>
</asp:Content>
Nota
Il modulo HTML generato dalla finestra di dialogo Aggiungi visualizzazione genera un campo modulo ID. Poiché la colonna ID è una colonna Identity, questo campo modulo non è necessario ed è possibile rimuoverlo in modo sicuro.
Dopo aver aggiunto la visualizzazione Crea, è possibile aggiungere nuovi record movie al database. Eseguire l'applicazione premendo F5 e fare clic sul collegamento Crea nuovo per visualizzare il modulo nella figura 13. Se si completa e si invia il modulo, viene creato un nuovo record del database di film.
Si noti che si ottiene automaticamente la convalida dei moduli. Se non si immette una data di rilascio per un film o si immette una data di rilascio non valida, il modulo viene riprodotto nuovamente e il campo data di rilascio è evidenziato.
Figura 13: Creazione di un nuovo record di database film (fare clic per visualizzare l'immagine a dimensione intera)
Modifica di record di database esistenti
Nelle sezioni precedenti è stato illustrato come elencare e creare nuovi record di database. In questa sezione finale viene illustrato come modificare i record di database esistenti.
Prima di tutto, è necessario generare il modulo Modifica. Questo passaggio è semplice perché Visual Studio genererà automaticamente il modulo Modifica. Aprire la classe HomeController.vb nell'editor di codice di Visual Studio e seguire questa procedura:
- Fare clic con il pulsante destro del mouse sul metodo Edit() nell'editor di codice e scegliere l'opzione di menu Aggiungi visualizzazione (vedere la figura 14).
- Selezionare la casella di controllo Crea una visualizzazione fortemente tipizzata.
- Nell'elenco a discesa Visualizza contenuto selezionare il valore Modifica.
- Nell'elenco a discesa Visualizza classe dati selezionare il valore MovieApp.Movie.
- Fare clic sul pulsante Aggiungi per creare la nuova visualizzazione.
Il completamento di questi passaggi aggiunge una nuova visualizzazione denominata Edit.aspx alla cartella Views\Home. Questa visualizzazione contiene un modulo HTML per la modifica di un record filmato.
Figura 14: Aggiunta della visualizzazione Modifica (fare clic per visualizzare l'immagine a dimensione intera)
Nota
La visualizzazione Modifica contiene un campo modulo HTML che corrisponde alla proprietà Movie Id. Poiché non si desidera che gli utenti modifichino il valore della proprietà Id, è consigliabile rimuovere questo campo modulo.
Infine, è necessario modificare il controller Home in modo che supporti la modifica di un record di database. La classe HomeController aggiornata è contenuta nell'elenco 6.
Elenco 6 - Controller\HomeController.vb (metodi di modifica)
Function Edit(ByVal id As Integer) As ActionResult
Dim movieToEdit = (From m In _db.MovieSet _
Where m.Id = id _
Select m).First()
Return View(movieToEdit)
End Function
<AcceptVerbs(HttpVerbs.Post)> _
Function Edit(ByVal movieToEdit As Movie) As ActionResult
Dim originalMovie = (From m In _db.MovieSet _
Where m.Id = movieToEdit.Id _
Select m).First()
If Not ModelState.IsValid Then
Return View(originalMovie)
End If
_db.ApplyPropertyChanges(originalMovie.EntityKey.EntitySetName, movieToEdit)
_db.SaveChanges()
Return RedirectToAction("Index")
End Function
Nell'elenco 6 è stata aggiunta logica aggiuntiva a entrambi gli overload del metodo Edit(). Il primo metodo Edit() restituisce il record del database film che corrisponde al parametro Id passato al metodo . Il secondo overload esegue gli aggiornamenti di un record filmato nel database.
Si noti che è necessario recuperare il film originale e quindi chiamare ApplyPropertyChanges() per aggiornare il filmato esistente nel database.
Riepilogo
Lo scopo di questa esercitazione era quello di dare un'idea dell'esperienza di creazione di un'applicazione MVC ASP.NET. Spero di aver scoperto che la creazione di un'applicazione Web MVC ASP.NET è molto simile all'esperienza di creazione di un'applicazione Active Server Pages o ASP.NET.
In questa esercitazione sono state esaminate solo le funzionalità più di base del framework MVC ASP.NET. Nelle esercitazioni future verranno approfonditi argomenti quali controller, azioni del controller, visualizzazioni, visualizzare dati e helper HTML.