Câu hỏi trắc nghiệmAdvanced Cross-Platform Application Programming With .NET - Lập trình ứng dụng đa nền tảng nâng cao với .NETPRN222 - Chương 7: SignalR và giao tiếp thời gian thực
In Asp.Net Core Razor Page, If both OnGet() and OnGetAsync() exist in the same PageModel, which one is called?
4 phương ánCó lời giảiXuất hiện trong 1 bộ đề
A·B·C·DCác phương án trả lời
AOnGet() only
BOnGetAsync() only
CCompilation error
Runtime errorĐúng
Giải thích chi tiết
Đáp án đúng: D. Khi chọn handler, Razor Pages bỏ hậu tố "Async" khỏi tên phương thức. Do đó OnGet và OnGetAsync cùng quy về một handler cho phương thức GET, và bộ chọn DefaultPageHandlerMethodSelector tìm thấy HAI ứng viên cùng khớp nên ném InvalidOperationException với thông báo nhiều handler cùng khớp. Đây là lỗi phát sinh LÚC CHẠY. Trình biên dịch không báo lỗi vì hai phương thức có tên khác nhau hoàn toàn hợp lệ trong C#, nên phương án C bị loại; và framework không tự ưu tiên bản đồng bộ hay bất đồng bộ, nên A và B đều sai.