Câu hỏi: PRN222 - Chương 5: ASP.NET Core Razor Pages
23 câu trắc nghiệm kèm lời giải của môn Advanced Cross-Platform Application Programming With .NET - Lập trình ứng dụng đa nền tảng nâng cao với .NET, xếp theo thứ tự nhập vào ngân hàng. Trang 2/2 — câu 21–23.
Danh sách câu hỏi
23/23 câuHết danh sách
ATo define database schemas.
BTo handle HTTP requests and provide data to the Razor Page.
CTo manage user sessions.
DTo define user interface layouts.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To handle HTTP requests and provide data to the Razor Page." PageModel là lớp code-behind của một Razor Page: nó chứa các handler OnGet, OnPost, OnGetAsync... để xử lý request theo phương thức HTTP, chứa các thuộc tính được model binding gán dữ liệu từ request, và cung cấp dữ liệu cho phần giao diện .cshtml truy cập qua @Model. Nói cách khác nó gộp vai trò của controller và view model trong MVC. Định nghĩa lược đồ cơ sở dữ liệu ("To define database schemas.") là việc của entity và DbContext; quản lý phiên ("To manage user sessions.") là của Session; bố cục giao diện ("To define user interface layouts.") do _Layout.cshtml đảm nhiệm.
A
OnSubmit()B
OnPost()C
SubmitForm()D
Post()Lời giải
Mở trang câu hỏi này →Đáp án đúng: "OnPost()". Razor Pages ánh xạ phương thức HTTP tới handler theo quy ước tên: OnGet cho GET, OnPost cho POST, kèm biến thể bất đồng bộ OnPostAsync và biến thể có tên như OnPostDeleteAsync khi dùng asp-page-handler. Vì biểu mẫu gửi lên bằng POST nên OnPost() là phương thức xử lý. Các tên OnSubmit(), SubmitForm() và Post() không nằm trong quy ước đặt tên handler của Razor Pages nên sẽ không bao giờ được framework gọi tới.
AUsing JavaScript only.
BUsing data annotations on the PageModel and validation tag helpers.
CUsing database triggers.
DUsing static HTML validation attributes.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Using data annotations on the PageModel and validation tag helpers." Cách kiểm tra dữ liệu chuẩn trong Razor Pages là gắn data annotation lên thuộc tính của PageModel ([Required], [StringLength], [Range], [EmailAddress]...), rồi trong .cshtml dùng các tag helper asp-validation-for và asp-validation-summary để hiển thị lỗi; phía handler kiểm tra ModelState.IsValid trước khi xử lý. Cơ chế này chạy cả phía máy chủ lẫn phía trình duyệt. Chỉ dùng JavaScript ("Using JavaScript only.") là không an toàn vì người dùng có thể bỏ qua; trigger cơ sở dữ liệu ("Using database triggers.") quá muộn và sai tầng; thuộc tính HTML tĩnh ("Using static HTML validation attributes.") chỉ là lớp hỗ trợ, không thay được kiểm tra phía máy chủ.