Hôm nay, gửi đến cả nhà những tính năng của ASP.NET MVC từ version 3 đến version 5; nhằm cô đọng lại những tính năng cho từng phiên bản, những cải thiện mới cho developer thông qua từng phiên bản ASP.NET MVC ASP.NET MVC3 So với phiên bản ASP.NET MVC2 thì tính năng mới được hỗ trợ thêm HTML5 và CSS3; tính năng này chỉ hỗ trợ cho những trình duyệt mới; Cải thiện về Model validation; Hỗ trợ 2 View Engine: RAZOR, ASPX, kể cả Open source trong khi ASP.NET MVC2 chỉ có ASPX; Controller được cải tiến hơn như thuộc tính ViewBag và kiểu ActionResult; Cải thiện Dependency Injection với IDpendencyResolver (có 2 phần: DependencyResolver và interface IDpendencyResolver)trong ASP.NET MVC3; đây là lớp thực thi mô hình Service Locator, cho phép framework gọi DIContainer khi cần làm việc với 1 lớp thực thi từ 1 kiểu cụ thể Cách tiếp cận với JavaScript được hạn chế; Hỗ trợ caching trong Partial page;
Trang 1ThS Nguyễn Nghiệm
0913.745.789 nghiemn@fpt.edu.vn songlong2k@gmail.com
Trang 2 Kiểm tra tính hợp lệ model
Trang 3 Dữ liệu không hợp lệ nhập từ người sử dụng sẽ gây các lỗi khó lường.
trò quan trọng.
Để trống ô nhập…
Không đúng định dạng email, creditcard, url…
Sai kiểu số nguyên, số thực, ngày giờ…
Không hợp lệ - phải có giá trị tối thiểu, tối đa, trong phạm vi…
Không đúng như kết quả tính toán trước
Trang 5Validate on server side Validate on
client side
Trang 6 Kiểm soát dữ liệu có thể thực hiện cả 2 phía là
client và server.
Kiểm phía client sẽ phản ứng nhanh cho người sử
dụng để có thể sửa chửa ngay
Kiểm lỗi phía server sẽ thực hiện các lỗi mà client
không thể làm được nếu dữ liệu có liên quan đến tài nguyên server
2 phía là client và server Nếu vì một lý do nào đó
mà client không thực hiện được thì đã có server thay thế.
Trang 7 Mã trên Model
Đính kèm các Attribute kiểm lỗi cho các Property
[ Required ], [ StringLength ]…
Mã trên View
Hiển thị lỗi
@ Html.ValidationMessageFor(Property)
@ Html.ValidationSummary()
Kiểm lỗi phía client
@ Scripts.Render("~/bundles/jquery")
Mã trên Controller
Kiểm lỗi phía server
ModelState.IsValid
ModelState.AddModelError()
Trang 10Kiểm lỗi phía server
Bổ sung thông báo lỗi model
Trang 11Thông báo lỗi chung không bao gồm lỗi
đã thông báo cho từng thuộc tính
Thông báo lỗi cho từng thuộc tính
Thực hiện kiểm lỗi phía client
Trang 13 [ DataType (DataType Password , ErrorMessage = "")]
DataType.CreditCard
DataType.Currency
DataType.Date
DataType.DateTime
DataType.Duration
DataType.EmailAddress
DataType.Html
DataType.ImageUrl
DataType.MultilineText
DataType.Password
DataType.PhoneNumber
DataType.PostalCode
DataType.Text
DataType.Time
DataType.Upload
DataType.Url
Trang 18 Bổ sung @Html.AntiForgeryToken() vào form để tránh các request giả mạo
Trang 20 NicEditor