Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Rick Anderson
Catatan
Versi terbaru dari tutorial ini tersedia di sini yang menggunakan ASP.NET MVC 5 dan Visual Studio 2013. Lebih aman, jauh lebih mudah untuk diikuti dan menunjukkan lebih banyak fitur.
Di bagian ini, Anda akan membuat kelas baru MoviesController dan menulis kode yang mengambil data film dan menampilkannya di browser menggunakan templat tampilan.
Bangun aplikasi sebelum melanjutkan ke langkah berikutnya.
Klik kanan folder Pengontrol dan buat pengontrol baruMoviesController. Opsi di bawah ini tidak akan muncul sampai Anda membangun aplikasi Anda. Pilih opsi berikut:
- Nama pengontrol: MoviesController. (Ini adalah default. )
- Templat: Pengontrol MVC dengan tindakan dan tampilan baca/tulis, menggunakan Kerangka Kerja Entitas.
- Kelas model: Film (MvcMovie.Models).
- Kelas konteks data: MovieDBContext (MvcMovie.Models).
- Tampilan: Razor (CSHTML). (Default.)

Klik Tambahkan. Visual Studio Express membuat file dan folder berikut:
- File MoviesController.cs di folder Pengontrol proyek.
- Folder Film di folder Tampilan proyek.
- Create.cshtml, Delete.cshtml, Details.cshtml, Edit.cshtml, dan Index.cshtml di folder Views\Movies baru.
ASP.NET MVC 4 secara otomatis membuat metode dan tampilan tindakan CRUD (membuat, membaca, memperbarui, dan menghapus) untuk Anda (pembuatan otomatis metode dan tampilan tindakan CRUD dikenal sebagai perancah). Anda sekarang memiliki aplikasi web yang berfungsi penuh yang memungkinkan Anda membuat, mencantumkan, mengedit, dan menghapus entri film.
Jalankan aplikasi dan telusuri pengontrol Movies dengan menambahkan /Movies ke URL di bilah alamat browser Anda. Karena aplikasi mengandalkan perutean default (ditentukan dalam file Global.asax), permintaan http://localhost:xxxxx/Movies browser dirutekan ke metode Movies tindakan default Index pengontrol. Dengan kata lain, permintaan http://localhost:xxxxx/Movies browser secara efektif sama dengan permintaan http://localhost:xxxxx/Movies/Indexbrowser . Hasilnya adalah daftar film kosong, karena Anda belum menambahkannya.

Membuat Film
Pilih tautan Buat Baru . Masukkan beberapa detail tentang film lalu klik tombol Buat .

Mengklik tombol Buat menyebabkan formulir diposting ke server, tempat informasi film disimpan dalam database. Anda kemudian dialihkan ke URL /Movies , tempat Anda dapat melihat film yang baru dibuat dalam daftar.

Buat beberapa entri film lagi. Coba tautan Edit, Detail, dan Hapus, yang semuanya berfungsi.
Memeriksa Kode yang Dihasilkan
Buka file Controllers\MoviesController.cs dan periksa metode yang dihasilkanIndex. Sebagian pengontrol film dengan metode ditunjukkan Index di bawah ini.
public class MoviesController : Controller
{
private MovieDBContext db = new MovieDBContext();
//
// GET: /Movies/
public ActionResult Index()
{
return View(db.Movies.ToList());
}
Baris berikut dari MoviesController kelas membuat instans konteks database film, seperti yang dijelaskan sebelumnya. Anda bisa menggunakan konteks database film untuk mengkueri, mengedit, dan menghapus film.
private MovieDBContext db = new MovieDBContext();
Permintaan ke Movies pengontrol mengembalikan semua entri dalam Movies tabel database film lalu meneruskan hasilnya ke Index tampilan.
Model yang Di ketik dengan Kuat dan @model Kata Kunci
Sebelumnya dalam tutorial ini, Anda melihat bagaimana pengontrol dapat meneruskan data atau objek ke templat tampilan menggunakan ViewBag objek . ViewBag adalah objek dinamis yang menyediakan cara terikat terlambat yang nyaman untuk meneruskan informasi ke tampilan.
ASP.NET MVC juga menyediakan kemampuan untuk meneruskan data atau objek yang ditik dengan kuat ke templat tampilan. Pendekatan yang sangat ditik ini memungkinkan pemeriksaan waktu kompilasi kode Anda yang lebih baik dan IntelliSense yang lebih kaya di editor Visual Studio. Mekanisme perancah di Visual Studio menggunakan pendekatan ini dengan MoviesController kelas dan melihat templat saat membuat metode dan tampilan.
Dalam file Controllers\MoviesController.cs periksa metode yang dihasilkanDetails. Sebagian pengontrol film dengan metode ditunjukkan Details di bawah ini.
public ActionResult Details(int id = 0)
{
Movie movie = db.Movies.Find(id);
if (movie == null)
{
return HttpNotFound();
}
return View(movie);
}
Movie Jika ditemukan, instans model diteruskan Movie ke tampilan Detail. Periksa isi file Views\Movies\Details.cshtml .
Dengan menyertakan @model pernyataan di bagian atas file templat tampilan, Anda dapat menentukan jenis objek yang diharapkan tampilan. Saat Anda membuat pengontrol film, Visual Studio secara otomatis menyertakan pernyataan berikut @model di bagian atas file Details.cshtml :
@model MvcMovie.Models.Movie
Direktif ini @model memungkinkan Anda mengakses film yang diteruskan pengontrol ke tampilan dengan menggunakan Model objek yang sangat diketik. Misalnya, dalam templat Details.cshtml, kode meneruskan setiap bidang film ke DisplayNameFor dan DisplayFor HTML Helpers dengan objek yang sangat di ketikModel. Metode Buat dan Edit dan lihat templat juga meneruskan objek model film.
Periksa templat tampilan Index.cshtml dan Index metode dalam file MoviesController.cs. Perhatikan bagaimana kode membuat List objek saat memanggil metode pembantu View Index dalam metode tindakan. Kode kemudian meneruskan daftar ini Movies dari pengontrol ke tampilan:
public ActionResult Index()
{
return View(db.Movies.ToList());
}
Saat Anda membuat pengontrol film, Visual Studio Express secara otomatis menyertakan pernyataan berikut @model di bagian atas file Index.cshtml :
@model IEnumerable<MvcMovie.Models.Movie>
Direktif ini @model memungkinkan Anda mengakses daftar film yang diteruskan pengontrol ke tampilan dengan menggunakan Model objek yang sangat diketik. Misalnya, dalam templat Index.cshtml , kode mengulang melalui film dengan melakukan pernyataan atas objek yang foreach di ketik Model dengan kuat:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReleaseDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Genre)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<th>
@Html.DisplayFor(modelItem => item.Rating)
</th>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", { id=item.ID })
</td>
</tr>
}
Model Karena objek sangat di ketik (sebagai IEnumerable<Movie> objek), setiap item objek dalam perulangan di ketik sebagai Movie. Di antara manfaat lainnya, ini berarti Anda mendapatkan pemeriksaan kode waktu kompilasi dan dukungan IntelliSense penuh di editor kode:

Bekerja dengan SQL Server LocalDB
Kode Kerangka Kerja Entitas Pertama-tama mendeteksi bahwa database string koneksi yang disediakan menunjuk ke Movies database yang belum ada, sehingga Kode Pertama membuat database secara otomatis. Anda dapat memverifikasi bahwa itu telah dibuat dengan melihat di folder App_Data . Jika Anda tidak melihat file Movies.mdf, klik tombol Perlihatkan Semua File di toolbar Penjelajah Solusi, klik tombol Refresh, lalu perluas folder App_Data.

Klik dua kali Movies.mdf untuk membuka DATABASE EXPLORER, lalu perluas folder Tabel untuk melihat tabel Film.

Catatan
Jika penjelajah database tidak muncul, dari menu ALAT , pilih Sambungkan ke Database, lalu batalkan dialog Pilih Sumber Data. Ini akan membuka paksa penjelajah database.
Catatan
Jika Anda menggunakan VWD atau Visual Studio 2010 dan mendapatkan kesalahan yang mirip dengan salah satu hal berikut ini:
- Database 'C:\Webs\MVC4\MVCMOVIE\MVCMOVIE\APP_DATA\MOVIES. MDF' tidak dapat dibuka karena versi 706. Server ini mendukung versi 655 dan yang lebih lama. Jalur downgrade tidak didukung.
- "Pengecualian InvalidOperation tidak ditangani oleh kode pengguna" SqlConnection yang disediakan tidak menentukan katalog awal.
Anda perlu menginstal SQL Server Data Tools dan LocalDB. MovieDBContext Verifikasi string koneksi yang ditentukan pada halaman sebelumnya.
Movies Klik kanan tabel dan pilih Perlihatkan Data Tabel untuk melihat data yang Anda buat.

Movies Klik kanan tabel dan pilih Buka Definisi Tabel untuk melihat struktur tabel yang pertama kali dibuat oleh Kode Kerangka Kerja Entitas untuk Anda.


Perhatikan bagaimana skema Movies tabel dipetakan ke kelas yang Movie Anda buat sebelumnya. Kode Kerangka Kerja Entitas Pertama secara otomatis membuat skema ini untuk Anda berdasarkan kelas Anda Movie .
Setelah selesai, tutup koneksi dengan mengklik kanan MovieDBContext dan memilih Tutup Koneksi. (Jika Anda tidak menutup koneksi, Anda mungkin mendapatkan kesalahan saat menjalankan proyek lain kali).

Anda sekarang memiliki database dan halaman daftar sederhana untuk menampilkan konten dari database tersebut. Dalam tutorial berikutnya, kita akan memeriksa sisa kode perancah dan menambahkan SearchIndex metode dan SearchIndex tampilan yang memungkinkan Anda mencari film dalam database ini.