Sdílet prostřednictvím


Přístup k datům modelu z kontroleru

Scott Hanselman

Toto je kurz pro začátečníky, který představuje základy ASP.NET MVC. Vytvoříte jednoduchou webovou aplikaci, která čte a zapisuje z databáze. Další kurzy a ukázky ASP.NET MVC najdete ve výukovém centru ASP.NET MVC .

V této části vytvoříme novou třídu MoviesController a napíšeme kód, který načte data o filmech a zobrazí je zpět do prohlížeče pomocí šablony View.

Klikněte pravým tlačítkem na složku Controllers (Řadiče) a vytvořte nový MoviesController.

Přidat kontroler

Tím se vytvoří nový soubor "MoviesController.cs" pod naší složkou \Controllers v rámci našeho projektu. Pojďme aktualizovat MovieController, aby načetl seznam filmů z nově naplněné databáze.

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());

        }
    }
}

Provádíme dotaz LINQ, abychom načítali jenom filmy vydané po létě 1984. K vykreslení tohoto seznamu filmů budeme potřebovat šablonu Zobrazení, takže klikněte pravým tlačítkem myši na metodu a vyberte Přidat zobrazení a vytvořte ji.

V dialogovém okně Přidat zobrazení označíme, že do šablony Zobrazení předáváme položku List<Movies.Models.Movie> . Na rozdíl od předchozích časů, kdy jsme použili dialogové okno Přidat zobrazení a zvolili jsme vytvoření prázdné šablony, tentokrát označíme, že chceme, aby pro nás Visual Studio automaticky "vygeneruje" šablonu zobrazení s výchozím obsahem. Provedeme to tak, že v rozevírací nabídce Zobrazit obsah vybereme položku Seznam.

Nezapomeňte, že když vytvoříte novou třídu, budete muset zkompilovat aplikaci, aby se zobrazila v dialogovém okně Přidat zobrazení.

Přidat zobrazení

Klikněte na přidat a systém automaticky vygeneruje kód pro zobrazení, které zobrazí náš seznam filmů. Je vhodný čas změnit <nadpis h2> na něco jako "Můj seznam filmů", jak jsme to udělali dříve v zobrazení Hello World.

Filmy – Microsoft Visual Web Developer 2010 Express

Spusťte aplikaci a na panelu Adresa přejděte na /Movies. Teď jsme načetli data z databáze pomocí základního dotazu v kontroleru a vrátili je do zobrazení, které ví o filmech. Toto zobrazení pak prochází seznam filmů a vytvoří pro nás tabulku dat.

Snímek obrazovky s oknem prohlížeče Internet Explorer, které v seznamu zobrazuje Seznam filmů s objekty Ghostbusters 2 a Ghostbusters 3

V této aplikaci nebudeme implementovat funkce Upravit, Podrobnosti a Odstranit, takže nebudeme potřebovat výchozí odkazy, které pro nás vytvořila šablona uživatelského rozhraní. Otevřete soubor /Movies/Index.aspx a odeberte ho.

Tady je zdrojový kód toho, jak by měla naše aktualizovaná šablona Zobrazení vypadat, jakmile provedeme tyto změny:

<%@ 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>

Vytváří odkazy, které nebudeme potřebovat, takže je v tomto příkladu odstraníme. Odkaz Vytvořit nový si ale ponecháme, protože to je další! Takto vypadá naše aplikace s odebraným sloupcem.

Snímek obrazovky s oknem prohlížeče Internet Explorer, které zobrazuje seznam filmů s odebranými odkazy Upravit, Podrobnosti a Odstranit

Teď máme jednoduchý výpis našich filmových dat. Pokud ale klikneme na odkaz Vytvořit nový, zobrazí se chyba, protože není propojený. Pojďme implementovat metodu Create Action (Vytvořit akci) a povolit uživateli zadávání nových filmů do naší databáze.