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
Ada tiga cara untuk meneruskan informasi dari pengontrol ke tampilan di ASP.NET MVC 3:
- Sebagai objek model yang di ketik dengan kuat.
- Sebagai jenis dinamis (menggunakan @model dinamis)
- Menggunakan ViewBag
Saya telah menulis aplikasi Blog Teratas MVC 3 sederhana untuk membandingkan dan kontras tampilan dinamis dan sangat ditik. Pengontrol dimulai dengan daftar blog sederhana:
using System.Collections.Generic;
using System.Web.Mvc;
namespace Mvc3ViewDemo.Controllers {
public class Blog {
public string Name;
public string URL;
}
public class HomeController : Controller {
List<Blog> topBlogs = new List<Blog>
{
new Blog { Name = "ScottGu", URL = "http://weblogs.asp.net/scottgu/"},
new Blog { Name = "Scott Hanselman", URL = "http://www.hanselman.com/blog/"},
new Blog { Name = "Jon Galloway", URL = "http://www.asp.net/mvc"}
};
public ActionResult IndexNotStonglyTyped() {
return View(topBlogs);
}
public ActionResult About() {
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
}
}
Klik kanan dalam metode IndexNotStonglyTyped() dan tambahkan tampilan Razor.
Pastikan kotak Buat tampilan yang ditik dengan kuat tidak dicentang. Tampilan yang dihasilkan tidak berisi banyak:
@{
ViewBag.Title = "IndexNotStonglyTyped";
}
<h2>IndexNotStonglyTyped</h2>
On the first line of the Views\Home\IndexNotStonglyTyped.cshtml file, add the model directive and the dynamic keyword.
@model dynamic
Karena kami menggunakan tampilan dinamis dan bukan tampilan yang ditik dengan kuat, intellisense tidak membantu kami. Kode yang telah selesai ditunjukkan di bawah ini:
@model dynamic
@{
ViewBag.Title = "IndexNotStonglyTyped";
}
<h2>Index Not Stongly Typed</h2>
<p>
<ul>
@foreach (var blog in Model) {
<li>
<a href="@blog.URL">@blog.Name</a>
</li>
}
</ul>
</p>
Sekarang kita akan menambahkan tampilan yang sangat ditik. Tambahkan kode berikut ke pengontrol:
public ActionResult StonglyTypedIndex() {
return View(topBlogs);
}
Perhatikan bahwa tampilan pengembalian yang sama persis(topBlogs); panggil sebagai tampilan yang tidak ditik dengan kuat. Klik kanan di dalam StonglyTypedIndex() dan pilih Tambahkan Tampilan. Kali ini pilih kelas Model Blog dan pilih Daftar sebagai templat Perancah.
Di dalam templat tampilan baru, kami mendapatkan dukungan intellisense.