Thursday , 25 April 2024
HOT

ViewBag và ViewData trong MVC.Net

ASP.NET MVC 3 được xây dựng trên nền tảng .NET Framework 4.0, và nó tận dụng được các tính năng mới của .NET 4.0, trong đó có kiểu dữ liệu dynamic. Trước đây bạn sẽ sử dụng thuộc tính ViewData để chuyển dữ liệu (model) cho View để render trang html. Bây giờ bạn sẽ có thêm thuộc tính ViewBag (kiểu dynamic).

Về căn bản hai cái này đều để lưu dữ liệu.

Thằng ViewData có thể lưu một kiểu giá trị nguyên thủy như int, string hay một list…

Cú pháp của ViewData:

ViewData["key"]=value;

Đối với một kiểu giá trị nguyên thủy thì khi hiển thị nó ra chỉ cần

@ViewData["key"]

Ví dụ ở controllers mình khai báo

ViewData["tieude"]="Xin Chao";

Bên View ta gọi ra như sau

     @ViewData["tieude"]

View sẽ hiển thị là: Xin Chao

Tương tự như ViewBag cũng vậy.chỉ khác là ViewBag khai báo nó theo cú pháp sau: ViewBag.key

Ví dụ: ViewBag.tieude = “Xin Chao”

Bên View ta gọi hiển thị như sau:

     @ViewBag.tieude

nhưng đối với khi lưu một List thì ViewData muốn hiển thị ra ta cần ép kiểu dữ liệu đó về kiểu dữ liệu gốc.

Ví dụ trong controllers:

   var danhsach= new List
    {
        "Luong Cong Chien",
        "Nguyen Van A",
        "Tran Van B"
    };
    ViewData["dulieu"] = danhsach;

Bên View muốn load ra thì làm như sau;

if(ViewData["dulieu"]!=null)
{
    foreach(var item in (List)ViewData["dulieu"])
    {
        @item
    }
}

còn đối với thằng ViewBag thì khác.nó linh động hơn. Nếu ta gán cho nó kiểu dữ liệu nào thì nó sẽ nhận kiểu dữ liệu đó. Ví dụ:

   var danhsach = new List
    {
        "Luong Cong Chien",
        "Nguyen Van A",
        "Tran Van B"
    };
   ViewBag.dulieu = danhsach;

Hiển thị ở View:

  if(ViewBag.dulieu!=null)
   {
        foreach(var item in ViewBag.dulieu)
        {
             @item
        }
   }

Nguồn: http://chiencong.com

Leave a Reply

Your email address will not be published. Required fields are marked *

*