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.
Questa è un'esercitazione per principianti che presenta le nozioni di base di ASP.NET MVC. Si creerà una semplice applicazione Web che legge e scrive da un database. Visitare il centro di apprendimento MVC ASP.NET per trovare altre esercitazioni e esempi di MVC ASP.NET.
In questa sezione si creerà una nuova classe MoviesController e si scriverà un codice che recupera i dati movie e lo visualizzerà nel browser usando un modello Di visualizzazione.
Fare clic con il pulsante destro del mouse sulla cartella Controllers e impostare un nuovo MoviesController.
Verrà creato un nuovo file "MoviesController.cs" sotto la cartella \Controllers all'interno del progetto. Aggiorniamo MovieController per recuperare l'elenco di film dal database appena popolato.
using System;
using System.Linq;
using System.Web.Mvc;
using Movies.Models;
namespace Movies.Controllers
{
public class MoviesController : Controller
{
MoviesEntities db = new MoviesEntities();
public ActionResult Index()
{
var movies = from m in db.Movies
where m.ReleaseDate > new DateTime(1984, 6, 1)
select m;
return View(movies.ToList());
}
}
}
Si sta eseguendo una query LINQ in modo che vengano recuperati solo i film rilasciati dopo l'estate del 1984. Per eseguire il rendering di questo elenco di film sarà necessario un modello Di visualizzazione, quindi fare clic con il pulsante destro del mouse sul metodo e scegliere Aggiungi visualizzazione per crearlo.
Nella finestra di dialogo Aggiungi visualizzazione si indicherà che verrà passato un list<movies.models.movie> al modello Di visualizzazione. A differenza delle volte precedenti è stata usata la finestra di dialogo Aggiungi visualizzazione e si è scelto di creare un modello "Vuoto", questa volta si indicherà che Visual Studio deve eseguire automaticamente lo scaffolding di un modello di visualizzazione con un contenuto predefinito. A tale scopo, selezionare la voce "Elenco" nel menu a discesa "Visualizza contenuto".
Tenere presente che, dopo aver creato una nuova classe, sarà necessario compilare l'applicazione per visualizzarla nella finestra di dialogo Aggiungi visualizzazione.
Fare clic su Aggiungi e il sistema genererà automaticamente il codice per una visualizzazione che visualizza l'elenco di film. Questo è un buon momento per modificare l'intestazione <h2> in qualcosa come "My Movie List" come abbiamo fatto in precedenza con la visualizzazione Hello World.
Eseguire l'applicazione e visitare /Movies nella barra degli indirizzi. A questo punto sono stati recuperati dati dal database usando una query di base all'interno del controller e sono stati restituiti i dati a una visualizzazione che conosce i film. Tale visualizzazione scorre quindi l'elenco di film e crea una tabella di dati per noi.
Non implementeremo la funzionalità Modifica, Dettagli ed Elimina con questa applicazione, pertanto non sono necessari i collegamenti predefiniti creati dal modello di scaffolding. Aprire il file /Movies/Index.aspx e rimuoverlo.
Ecco il codice sorgente per l'aspetto del modello di visualizzazione aggiornato dopo aver apportato queste modifiche:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Movies.Models.Movie>>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Movie List
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>My Movie List</h2>
<table>
<tr>
<th>Title</th>
<th>ReleaseDate</th>
<th>Genre</th>
<th>Rating</th>
<th>Price</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td><%: item.Title %></td>
<td><%: String.Format("{0:g}", item.ReleaseDate) %></td>
<td><%: item.Genre %></td>
<td><%: item.Rating %></td>
<td><%: String.Format("{0:F}", item.Price) %></td>
</tr>
<% } %>
</table>
<p>
<%: Html.ActionLink("Create New", "Create") %>
</p>
</asp:Content>
Si tratta di creare collegamenti che non saranno necessari, quindi verranno eliminati per questo esempio. Il collegamento Crea nuovo verrà mantenuto, come illustrato di seguito. Ecco l'aspetto dell'app con quella colonna rimossa.
Ora abbiamo un elenco semplice dei nostri dati cinematografici. Tuttavia, se si fa clic sul collegamento "Crea nuovo", verrà visualizzato un errore perché non è collegato. Implementare un metodo Crea azione e consentire a un utente di immettere nuovi film nel database.