Bagikan melalui


Mengakses Data Model Anda dari Pengontrol

oleh Scott Hanselman

Ini adalah tutorial pemula yang memperkenalkan dasar-dasar ASP.NET MVC. Anda akan membuat aplikasi web sederhana yang membaca dan menulis dari database. Kunjungi pusat pembelajaran MVC ASP.NET untuk menemukan tutorial dan sampel MVC ASP.NET lainnya.

Di bagian ini kita akan membuat kelas MoviesController baru, dan menulis beberapa kode yang mengambil data Film kita dan menampilkannya kembali ke browser menggunakan templat Tampilan.

Klik kanan pada folder Pengontrol dan buat MoviesController baru.

Tambahkan Pengontrol

Ini akan membuat file "MoviesController.cs" baru di bawah folder \Controllers kami dalam proyek kami. Mari kita perbarui MovieController untuk mengambil daftar film dari database yang baru diisi.

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

        }
    }
}

Kami melakukan kueri LINQ sehingga kami hanya mengambil film yang dirilis setelah musim panas 1984. Kita akan memerlukan templat Tampilan untuk merender daftar film ini kembali, jadi klik kanan dalam metode dan pilih Tambahkan Tampilan untuk membuatnya.

Dalam dialog Tambahkan Tampilan, kami akan menunjukkan bahwa kami meneruskan List<Movies.Models.Movie> ke templat Tampilan kami. Tidak seperti waktu sebelumnya kami menggunakan dialog Tambahkan Tampilan dan memilih untuk membuat templat "Kosong", kali ini kami akan menunjukkan bahwa kami ingin Visual Studio secara otomatis "merancang" templat tampilan untuk kami dengan beberapa konten default. Kami akan melakukan ini dengan memilih item "Daftar" dalam menu dropdown "Lihat konten.

Ingat, ketika Anda telah membuat kelas baru, Anda harus mengkompilasi aplikasi agar muncul di Dialog Tambahkan Tampilan.

Tambahkan Tampilan

Klik tambahkan dan sistem akan secara otomatis menghasilkan kode untuk Tampilan untuk kami yang menampilkan daftar film kami. Ini adalah saat yang tepat untuk mengubah <judul h2> menjadi sesuatu seperti "Daftar Film Saya" seperti yang kami lakukan sebelumnya dengan tampilan Halo Dunia.

Film - Microsoft Visual Web Developer 2010 Express

Jalankan aplikasi Anda dan kunjungi /Movies di bilah alamat. Sekarang kita telah mengambil data dari database menggunakan kueri dasar di dalam Pengontrol dan mengembalikan data ke Tampilan yang mengetahui tentang Film. Tampilan tersebut kemudian berputar melalui daftar Film dan membuat tabel data untuk kami.

Cuplikan layar jendela browser Internet Explorer, yang menampilkan Daftar Film Saya dengan Ghostbusters 2 dan Ghostbusters 3 dalam daftar.

Kami tidak akan menerapkan fungsionalitas Edit, Detail, dan Hapus dengan aplikasi ini - jadi kami tidak memerlukan tautan default yang dibuat templat perancah untuk kami. Buka file /Movies/Index.aspx dan hapus file tersebut.

Berikut adalah kode sumber untuk tampilan templat Tampilan kami yang diperbarui setelah kami membuat perubahan ini:

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

Ini membuat tautan yang tidak kita perlukan, jadi kita akan menghapusnya untuk contoh ini. Kami akan menyimpan tautan Buat Baru kami, karena itu berikutnya! Berikut tampilan aplikasi kami dengan kolom tersebut yang dihapus.

Cuplikan layar jendela browser Internet Explorer, yang memperlihatkan Daftar Film Saya dengan tautan Edit, Detail, dan Hapus dihapus.

Kami sekarang memiliki daftar sederhana data film kami. Namun, jika kita mengklik tautan "Buat Baru", kita akan mendapatkan kesalahan karena tidak terhubung! Mari kita terapkan metode Buat Tindakan dan aktifkan pengguna untuk memasukkan film baru di database kita.