MVC là viết tắt của Model-View-Controller, mô hình phát triển web tốt nhất hiện nay.
- Model: Tầng thao tác nghiệp database
- View: Hiển thị HTML-Javascript
- Controller: Tiếp nhận dữ liệu từ browser, tầng xử lý Logic, validate dữ liệu đầu vào. Tầng trung gian View và Model.
Khi có một Request được gửi tới Server, nó sẽ gửi đến Controller đầu tiên, controller xử lý (gọi model). Sau khi xử lý xong thì sẽ trả xuống View. Ở bài này mình giới thiệu với các bạn về cách tạo và hoạt động của một Controller.
Cách để tạo một controller
- Đầu tiên chúng ta sẽ thêm mới một controller có tên là NewsController. Khi bạn bấm vào Controller như hình dưới nó sẽ xuất hiện một cửa số với nhiều lựa chọn. Ở đây bác không cần phải xoắn quẩy làm gì, chỉ là bạn xem loại nào hoặc mục đích sử dụng để nó tự động sinh ra cho bạn mà bạn không phải viết. Ở đây mình không thích visual nó Gen, mình thích tự viết –> mình chọn Controller loại Empty
- Sau khi tạo xong Controller bạn sẽ thấy hình như ở dưới.
-
1234public string Index1(){return “Xin chao asp.net mvc 5”;}1234public ActionResult Index2(){return View();}
Ở hàm Index1 phương thức trả về view một chuỗi HTML (bạn có thể thêm thẻ html trong chuỗi trả về đó). Ngay lúc này bạn có thể test thử (F5 hoặc ctrl+f5). Trên trình duyệt với hàm 1 chuỗi sẽ trả về là:
1Xin chao asp.net mvc 5Còn đối với hàm index2 thì bạn sẽ thấy màn hình lỗi, do chư tạo View cho nó, cái này cứ từ từ kệ nó đi ?
Lúc này có thể bạn sẽ thắc mắc là chạy controller này thế nào? Để chạy và gõ: http://localhost:6734/News/Index1. Tên controleller và tên action. Nếu bạn sử dụng action với tên là Index thì khi chạy ứng dụng không nhất thiết cần phải có mà chỉ cần gõ tên controller là đủ: http://localhost:6734/News
Khi bạn làm việc với mvc bạn sẽ tìm hiểu về cách sử dụng Route. Đây là trung tâm xử lý định tuyến Url. Ngày trước khi chúng ta làm webform, chúng ta phải sử dụng thêm dll của bên thứ 3 để định tuyên, friendurl. Nhưng với MVC nó sẽ làm tất cho bạn.
Bạn mở file RoutConfig.cs ra bạn sẽ thấy hàm:
12345678910111213public class RouteConfig{public static void RegisterRoutes(RouteCollection routes){routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);routes.MapRoute(name: “Default”,url: “{controller}/{action}/{id}”,defaults: new { controller = “Home”, action = “Index”, id = UrlParameter.Optional });}}Cấu hình url mặc định sẽ chạy như sau: url: “{controller}/{action}/{id}”. Đó chính là lý do tại sạo ở trên chung ta gõ: New –>action. Nếu bạn muốn thay đổi bạn sẽ xử lý nó ở đây.
Mình sẽ bổ sung thêm một Route nữa, để các bạn thấy được sự tiện lợi và kỳ diệu mà mvc mang lại cho chung ta. Trong Routeconfig mình bổ sung thêm một định tuyến nữa có tên là Hello( Tên là Unique nhé)
1234routes.MapRoute(name: “Hello”,url: “{controller}/{action}/{name}/{id}”);Khi bạn gán như trên thì nó sẽ được áp dụng với bất kỳ Controll nào. Ví dụ trong News mình bổ sung thêm một hàm như bên dưới và write ra trên trình duyệt
1234public string Index3(string name, string id){return “Hello, “ + name +“, Id=”+id;}Trên Url bạn gõ: http://localhost:6734/news/index3/test-xin-chao/5. Lúc này trên trình duyệt nó sẽ hiển thị nội dung là: Hello, test-xin-chao, Id=5
Như vậy là mình đã giới thiệu xong với các bạn về cách tạo và sử dụng một controller.