ASP.NET - MVC - Controller
Controller
Trong phần này, bạn sẽ tìm hiểu về Controller trong ASP.NET MVC.
Controller trong Framework MVC xử lý mọi yêu cầu URL đến. Controller là một lớp trong namespace System.Web.Mvc.Controller. Lớp Controller chứa các phương thức public gọi là các phương thức Action. Controller và phương thức action của nó xử lý các yêu cầu trình duyệt đến, lấy dữ liệu mô hình cần thiết và trả về cho trình duyệt.
Trong ASP.NET MVC, mọi tên lớp của trình điều khiển phải kết thúc bằng một từ "Controller". Ví dụ: bộ điều khiển cho trang chủ phải là HomeController và bộ điều khiển cho sinh viên phải là StudentController. Ngoài ra, mỗi lớp Controller được đặt trong thư mục Controller của cấu trúc thư mục MVC.
Trách nhiệm của Controller
Controller có 3 trách nhiệm chính:
- Nhận request
- Dựng model
- Gửi trả response
Nhận request
Controller có trách nhiệm nhận request từ user.
Dựng model
Controller Action method thực thi logic của ứng dụng và xây dựng nên model.
Gửi trả kết quả
Cuối cùng nó sẽ trả về kết quả trong HTML, File, JSON, XML hoặc bất cứ định dạng nào về cho user.
Thêm mới Controller
Để thêm 1 controller mới, ở cửa sổ Solution Explorer của dự án MVC-BasicTutorials, chuột phải lên thư mục Controllers và sau đó nhấn Add, chọn Controller.
Ở hộp thoại Add Scaffold, chọn MVC 5 Controller – Empty và nhấn Add. Ở bước này, do chúng ta mới làm quen với Controller cho nên chúng ta sử dụng mẫu Controller dạng Empty, tức là nội dung trống. Từ đó, chúng ta sẽ viết 1 số đoạn code làm quen. Ở những bài tiếp theo, bạn sẽ làm quen các dạng Controller khác.
Thêm Scaffold chứa các mẫu khác nhau để tạo bộ điều khiển mới. Chúng ta sẽ tìm hiểu về các mẫu khác sau. Hiện tại, chọn "MVC 5 Controller - Empty" và nhấp vào Thêm. Nó sẽ mở hộp thoại Thêm điều khiển như hình sau:
Sau đó, đặt tên Controller là StudentController, lưu ý bạn nên để tiền tố “Controller” cuối cùng khi đặt tên để dễ phân biệt lớp code nào là Controller.
Ở bước này, thư mục Controller, lớp StudentController.cs được tạo ra với nội dung mặc định như trong hình sau.
Ví dụ: Controller
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVC_BasicTutorials.Controllers
{
public class StudentController : Controller
{
// GET: Student
public ActionResult Index()
{
return View();
}
}
}
Như bạn có thể thấy ở trên, lớp StudentContoder kế thừa từ lớp Controller. Mỗi controller trong MVC phải kế thừa từ lớp Controller trừu tượng này. Lớp Controller cơ sở này chứa các phương thức có thể được sử dụng cho các mục đích khác nhau.
Tiếp đến, bạn thêm 1 số đoạn mã vào tập tin StudentController.cs như sau:
Ví dụ: Controller
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVC_BasicTutorials.Controllers
{
public class StudentController : Controller
{
// GET: Student
public string Index()
{
return "This is Index action method of StudentController";
}
}
}
Giải thích đoạn mã trên:
- Phương thức Index() trả về kiểu string với giá trị là “This is Index action method of StudentController.” Đây là phương thức mặc định của 1 Controller bất kỳ.
Bạn có thể tạo nhiều phương thức thực thi ở tập tin StudentController.cs tùy ý. Tiếp theo, bạn thực thi ứng dụng bằng cách nhấn F5 hoặc Ctrl + F5 (chế độ không cần Debug) để xem kết quả.
Một số điểm cần nhớ: