Viewbag mvc là gì

Chào ace fresher .net FPT. Mình là Tân học viên lớp .Net 06_18. Account TanDC1!chúc ae học vui vẻ! he
Trong asp.net mvc có 3 khái niệm mới đó là: ViewBag, ViewData, TempData. Khi sử dụng 3 từ khóa này bạn có thể truyền dữ liệu, số liệu từ View xuống controller một các đơn giản. Đây là một dạng truyền dữ liệu từ Request tới Next Request (Subsequen request). ViewBag và ViewData gần tương tự nhau, cũng không khác nhau nhiều về cách sử dụng.

Bạn đang xem: Viewbag là gì


Giúp bạn có thể chuyển dữ liệu từControllerxuốngViewTruyền dữ liệu từ Controller xuống View tương ứngChỉ sử dụng 1 lần duy nhất, sau khi dùng xong dữ liệu ở hai thằng này được giải phóng.Khác nhau giữa ViewBag và ViewData:
ViewData là một dạng Dictionary, để truy cập vào biến bạn cần khai báo một key dạng string: ViewData<“Danhmuc”>.ViewBag: là một điểm mới trong Net Framework 4.0. Cho phép bạn định nghĩa các biến dạng Dynamic: ViewBag.DanhMuc.ViewData: đòi hỏi bạn cần kiểm tra dữ liệu Null và chuyển đổi kiểu trước khi sử dụngViewBag: không đòi hỏi kiểm tra hay chuyển đổi kiểu (ép kiểu)Các bạn xem ví dụ dưới đây:
Như vậy chúng ta đã hiểu về sự khác nhau giữa ViewBag, ViewData. Thực ra thì hai thằng này không khác nhau là mấy. ViewBag được cái dùng nhanh hơn vì nó có kiểu Dynamic. Tôi thì hiện tại sử dụng ViewBag nhiều nó nhanh, đơn giản không mất công gõ code nhiều.

Xem thêm: Vẻ Đẹp Khuất Lấp Của Người Đàn Bà Hàng Chài, Vẻ Đẹp Khuất Lấp Của Người Đàn Bà Hàng


TempData cũng là một dạng Dictionary. Dữ liệu khai báo như ViewData, sử dụng cũng như vậy cần kiểm tra và ép kiểu trước khi sử dụng. Nó kiểu như một dạng Session nhưng mà có phiên sống ngắn, hay đúng hơn là 1 lần duy nhất sau khi sử dụng. Nếu muốn gia hạn sống cho TempData thì bạn cần phải dùng thêm lệnh Keep.
TempData có cái hay là mình dùng nó để di chuyển, move từ Controller này sang Controller khác hoặc từ Action này sang Action khác. Thường thì cái này hay được sử dụng cho một câu thông báo lỗi hay validate.
Để hiển thị dữ liệu từ controller xuống action, bạn có thể chọn Viewbag hay viewdata.Để truyền 1 thông điệp, để truyền dữ liệu từ controller nay sang controller khác hay Action khác thì bạn dùng TempData.

Viewbag mvc là gì

Viewbag mvc là gì


.NETAffiliateAfter EffectAndroidAngularAPI 2ARASP.NETASP.NET MVCAssetBảo mậtBootstrapC#C++CNTTCSSDomainExcelFacebookGitGuide GameHostingHTMLIELTSIISInterviewJavaJavaScriptKhám pháKhóa họcLập trìnhLịch sửMicrosoft WordMMOMVCNhân vật - Sự kiệnPHPReactResourceSEOSource ControlSQLTài liệuThủ thuậtTiếng Anh Cơ BảnTOEICToolTutorialsTwigTypeScriptUnity3DWeb APIWebsiteWindows FormWordpressYoutube
  • Làm thế nào để hết lang beng
  • Chủ nghĩa thực dân là gì
  • Uốn tóc là gì
  • Phòng double là gì

Ở đây , cả ViewDataViewBag đều được sử dụng truyền dữ liệu từ Bộ điều khiển sang Chế độ xem .

1. ViewData

- ViewData là đối tượng từ điển có nguồn gốc từ lớp ViewDataDictonary .

- Dữ liệu chỉ cho phép một yêu cầu, giá trị ViewData bị xóa khi chuyển hướng trang xảy ra.

- Giá trị ViewData phải được gõ cate trước khi sử dụng.

Ví dụ: Trong Bộ điều khiển

public ActionResult PassingDatatoViewWithViewData() { ViewData["Message"] = "This message shown in view with the ViewData"; return View(); }

Trong chế độ xem

@ViewData["Message"];

- Với ViewData là một cặp như KhóaGiá trị , Thông báo là Khóa và giá trị dấu phẩy đảo ngược là Giá trị.

- Dữ liệu đơn giản vì vậy chúng tôi không thể sử dụng typecasting ở đây nếu dữ liệu phức tạp sau đó sử dụng kiểu truyền.

public ActionResult PassingDatatoViewWithViewData() { var type= new List { "MVC", "MVP", "MVVC" }; ViewData["types"] = type; return View(); }

- Trong dữ liệu Xem có thể được trích xuất như

    @foreach (var items in (List)ViewData["types"]) {
  • @itemsli> } ul>

    2. ViewBag

    --ViewBag sử dụng tính năng động. Trình bao bọc ViewBag xung quanh ViewData.

    - Trong kiểu đúc ViewBag là bắt buộc.

    - Giống như ViewData, nếu giá trị chuyển hướng xảy ra trở thành null.

    Thí dụ:

    public ActionResult PassingDatatoViewWithViewBag() { ViewData.Message = "This message shown in view with the ViewBag"; return View(); }

    Trong chế độ xem

    @ViewBag.vbMessage

    --Đối với loại phức tạp sử dụng ViewBag

    public ActionResult PassingDatatoViewWithViewBag() { var type= new List { "MVC", "MVP", "MVVC" }; ViewBag.types = type; return View(); }

    - Trong dữ liệu Xem có thể được trích xuất như

      @foreach (var items in ViewBag.types) {
    • @itemsli> } ul>

      - sự khác biệt chính là ViewBag không yêu cầu typecasting nhưng ViewData được yêu cầu typecasting.

      0 hữu ích 0 bình luận chia sẻ