Consider this C# code:
4 phương ánCó giải thíchDễ
public IActionResult Index()
{
ViewBag.Count = 10;
return View();
}Razor:
<p>@(ViewBag.Count + 5)</p>What happens?
Các phương án trả lời
Chọn một phương ánLờ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
With AddTransient<EmailService, EmailService>(), injecting into a controller twice will produce:Có lời giảiCâu hỏiConsider this C# code: public IActionResult Save(Person person) { if (ModelState.IsValid) return Content("Valid"); return Content("Error"); } If no value for Age is passed and Age is int, what happens?Có lời giảiCâu hỏiConsider this C# code: public class Person { public int Age { get; set; } } public IActionResult Save(Person person) { if (!ModelState.IsValid) { return Content("Invalid!"); } return Content("OK"); } Input: Age = "abc"? What is the output?Có lời giảiCâu hỏiCả 24 câu của chủ đề24 câu