Consider this C# code:

4 phương ánCó giải thíchDễ
Đề bài
public IActionResult Index()
{
    ViewBag.Count = 10;
    return View();
}

Razor:

Đề bài
<p>@(ViewBag.Count + 5)</p>

What happens?

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: "15". ViewBag là đối tượng dynamic bọc quanh ViewData. Action Index gán ViewBag.Count = 10, tức lưu một giá trị int, rồi trả về View. Khi render, biểu thức tường minh @(ViewBag.Count + 5) được tính lúc chạy: dynamic thấy int 10 cộng int 5 nên ra 15, và thẻ p hiển thị số 15. "105" sai vì kết quả nối chuỗi chỉ xảy ra khi Count là chuỗi 10 để phép cộng thành ghép chuỗi, ở đây Count là số nguyên. "Error" sai vì dynamic giải quyết phép cộng lúc chạy, Count tồn tại và có kiểu int nên không có RuntimeBinderException, cũng không có lỗi biên dịch. "Nothing" sai vì ViewBag.Count được truyền sang view qua cùng ViewData trong request nên có giá trị để in, chỉ khi khoá không tồn tại thì null cộng 5 mới cho null và Razor in ra chuỗi rỗng.

Cùng chương 4

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