Câu hỏi phỏng vấn ASP.NET MVC
Câu hỏi

Sự khác biệt giữa ViewData và `...

Câu trả lời

Trong ASP.NET MVC, ViewDataTempData là hai cơ chế được sử dụng để truyền dữ liệu từ controller đến view, hoặc giữa các request khác nhau. Mặc dù cả hai đều có chức năng tương tự là lưu trữ dữ liệu, nhưng chúng có những đặc điểm và mục đích sử dụng khác nhau.

ViewData

ViewData là một dictionary của object được truyền từ controller đến view. Nó dựa trên ViewDataDictionary và là một cấu trúc dữ liệu dạng key-value. ViewData chỉ tồn tại trong suốt request hiện tại và sẽ bị mất khi chuyển từ một request này sang request khác. Nó thường được sử dụng để truyền dữ liệu không phức tạp từ controller đến view.

Đặc điểm của ViewData:

  • Không yêu cầu casting khi lấy dữ liệu nhưng cần casting khi truy xuất.
  • Dữ liệu chỉ tồn tại trong suốt request hiện tại.
  • Nếu bạn cố gắng truy cập ViewData mà không có giá trị, nó sẽ trả về null mà không bị lỗi.

Ví dụ sử dụng ViewData:

csharp Copy
public ActionResult Index()
{
    ViewData["Message"] = "Hello from ViewData!";
    return View();
}

Trong view:

html Copy
<p>@ViewData["Message"]</p>

TempData

TempData cũng là một dictionary dựa trên TempDataDictionary và được sử dụng để truyền dữ liệu giữa các request. TempData sử dụng session để lưu trữ dữ liệu và chỉ xóa dữ liệu sau khi nó đã được truy cập trong một request tiếp theo, điều này rất hữu ích cho các kịch bản như chuyển hướng, nơi bạn muốn truyền dữ liệ...

senior

senior

Gợi ý câu hỏi phỏng vấn

middle

Một view có thể được chia sẻ giữa nhiều controllers không? Nếu có, chúng ta có thể làm điều đó như thế nào?

middle

NonAction methods trong MVC là gì?

middle

Bạn biết gì về Bundle.Config trong ASP.NET MVC?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào