What is the primary purpose of ViewBag and ViewData in ASP.NET Core?

4 phương ánCó giải thích
Đề bài
// Controller
public IActionResult Index()
{
   ViewBag.Message = "Hello from ViewBag!";
   ViewData["Title"] = "My Page Title";
   return View();
}

// View
<p>@ViewBag.Message</p>
<h1>@ViewData["Title"]</h1>

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "To pass data from a controller action to a view". ViewBag và ViewData là hai cơ chế truyền dữ liệu MỘT CHIỀU từ action của controller sang view trong phạm vi cùng một request: ViewData là từ điển kiểu object nên phải ép kiểu khi dùng, còn ViewBag là lớp bọc dynamic quanh chính từ điển đó nên viết gọn hơn. Cả hai đều mất giá trị ngay khi request kết thúc, vì vậy phương án "To store data persistently across multiple requests" sai - muốn giữ dữ liệu qua nhiều request phải dùng TempData hoặc Session. Quản lý phiên (tức "To manage user sessions") là việc của Session; còn mã hoá dữ liệu (tức "To encrypt sensitive data") không liên quan gì tới hai cơ chế này.

Cùng chương 4

Xuất hiện trong 1 bộ đề