1 Bắt đầu với ASP.NET MVC3 (Phần 2: Adding a Controller) Thu Oct 23, 2014 7:29 pm
Admin
Admin
Bắt đầu với ASP.NET MVC3 (Phần 2: Adding a Controller)
MVC là viết tắt của Model-View-Controller. MVC là một mẫu thiết dùng cho việc phát triển ứng dụng có kiến trúc tốt và dễ dàng bảo trì. Ứng dụng MVC bao gồm:
Chúng ta sẽ hiểu được các khái niệm này thông qua các bài hướng dẫn và chỉ cho bạn cách sử dụng chúng để xây dựng ứng dụng như thế nào.
Hãy bắt đầu bằng cách tạo một class controller. Trong Solution Explorer, click phải chuột trên foler Controllers và chọn Add -> Controller.
đặt tên cho controller là “HelloWorldController”. Chọn Emty controller trong Template và click OK.
Bây giờ trong foler controllers chúng đã có file vừa được tạo với tên HelloWorldController.cs. Nội dung của file như sau:
Bên trong khối public class HelloWorldController, tạo hai phương thức có code như bên bên dưới. controller sẽ return về một chuỗi HTML.
using System.Web;
using System.Web.Mvc;
namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my default action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
Controller “HelloWorldController” và phương thức đầu tiên trong đoạn code trên Index(). Hãy gọi nó từ trình duyệt. Chạy ứng dụng (nhấn F5 hoặc Ctrl+F5). Trong trình duyệt thêm “HelloWorld” vào đường dẫn địa chỉ trên thanh address. (Ví dụ, trong hình bên dưới là: http://localhost:43246/HelloWorld) trình duyệt sẽ hiển thị nội dung của trang như trong hình bên dưới. Trong phương thức trên, nó sẽ return một chuỗi trực tiếp.
ASP.NET MVC sẽ gọi ra một class controller khác (và với các phương thức khác bên trong class đó) phụ thuộc vào địa chỉ URL. mặc định ASP.NET MVC sẽ map URL theo định dạng như sau để gọi:
/[Controller]/[ActionName]/[Parameters]
Phần đầu tiên của URL xác định class controller để thực thi. Vì vậy /HelloWorld sẽ map với class HelloWorlController . Phần thứ hai xác định action method bên trong class cần thực thi. Ví dụ /HelloWorl/Index thì phương thức Index của HelloWorldController sẽ thực thi. Lưu ý là chúng ta chỉ browse đến /HelloWorld thì phương thức Index mặc định nó sẽ được thực thi. Nếu muốn thực thi phương thức khác trong class HelloWorldController chúng ta phải chỉ định rõ tên phương thức đó ra.
Khi chúng ta browse đến http://localhost:xxxx/HelloWorld/Welcome. Phương thức Welcome sẽ thực thi và trả về một chuỗi “This is the Welcome action method…”. Mặc định MVC map theo /[Controller]/[ActionName]/[Parameters]. Đối với URL này, controller là HelloWorld và Welcome là action method và không có sử dụng tham số.
Bây giờ chúng ta hãy điều chỉnh ví dụ để có thể pass tham số từ URL đến controller (ví dụ, /HelloWorld/Welcome?name=Scott&numtimes=4). điều chỉnh phương thức Welcome gồm hai tham số như bên dưới. Tham số numTimes mặc định được gán là 1 nếu không có giá trị của tham số truyền vào.
public string Welcome(string name, int numTimes = 1) {
return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}
Chạy ứng dụng của bạn và browse đến URL (http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4). Bạn có thể sử dụng giá trị khác để truyền vào cho tham số name và numTimes trong URL. Hệ thống sẽ tự động map tên tham số từ chuỗi truy vấn trong address bar với tham số trong phương thức.
Trong các ví dụ trên chúng ta đã làm việc với phần “VC” của MVC. đó là, view và controller. Thông thường chúng ta không muốn controller return về trực tiếp HTML, vì điều đó làm cho code của chúng ta trở nên rườm rà. Thay vào đó chúng ta sẽ dùng file view template riêng biệt để generate HTML reponse. Chúng ta sẽ làm điều đó trong phần tiếp theo.
(Bài viết được dịch từ: Getting Started with ASP.NET MVC 3 /Adding a Controller)
MVC là viết tắt của Model-View-Controller. MVC là một mẫu thiết dùng cho việc phát triển ứng dụng có kiến trúc tốt và dễ dàng bảo trì. Ứng dụng MVC bao gồm:
- Controllers: gồm các class xử lí các request, nhận dữ liệu từ model, và sau đó chỉ định view template nào sẽ nào response cho client.
- Models: gồm các class đại diện cho dữ liệu của ứng dụng và nó sử dụng validate logic để tạo ra các ràng buộc nguyên tắc nghiệp vụ cho dữ liệu.
- Views: gồm các file template được ứng dụng của bạn sử dụng để generate HTML response động.
Chúng ta sẽ hiểu được các khái niệm này thông qua các bài hướng dẫn và chỉ cho bạn cách sử dụng chúng để xây dựng ứng dụng như thế nào.
Hãy bắt đầu bằng cách tạo một class controller. Trong Solution Explorer, click phải chuột trên foler Controllers và chọn Add -> Controller.
đặt tên cho controller là “HelloWorldController”. Chọn Emty controller trong Template và click OK.
Bây giờ trong foler controllers chúng đã có file vừa được tạo với tên HelloWorldController.cs. Nội dung của file như sau:
Bên trong khối public class HelloWorldController, tạo hai phương thức có code như bên bên dưới. controller sẽ return về một chuỗi HTML.
using System.Web;
using System.Web.Mvc;
namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
//
// GET: /HelloWorld/
public string Index()
{
return "This is my default action...";
}
//
// GET: /HelloWorld/Welcome/
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
Controller “HelloWorldController” và phương thức đầu tiên trong đoạn code trên Index(). Hãy gọi nó từ trình duyệt. Chạy ứng dụng (nhấn F5 hoặc Ctrl+F5). Trong trình duyệt thêm “HelloWorld” vào đường dẫn địa chỉ trên thanh address. (Ví dụ, trong hình bên dưới là: http://localhost:43246/HelloWorld) trình duyệt sẽ hiển thị nội dung của trang như trong hình bên dưới. Trong phương thức trên, nó sẽ return một chuỗi trực tiếp.
ASP.NET MVC sẽ gọi ra một class controller khác (và với các phương thức khác bên trong class đó) phụ thuộc vào địa chỉ URL. mặc định ASP.NET MVC sẽ map URL theo định dạng như sau để gọi:
/[Controller]/[ActionName]/[Parameters]
Phần đầu tiên của URL xác định class controller để thực thi. Vì vậy /HelloWorld sẽ map với class HelloWorlController . Phần thứ hai xác định action method bên trong class cần thực thi. Ví dụ /HelloWorl/Index thì phương thức Index của HelloWorldController sẽ thực thi. Lưu ý là chúng ta chỉ browse đến /HelloWorld thì phương thức Index mặc định nó sẽ được thực thi. Nếu muốn thực thi phương thức khác trong class HelloWorldController chúng ta phải chỉ định rõ tên phương thức đó ra.
Khi chúng ta browse đến http://localhost:xxxx/HelloWorld/Welcome. Phương thức Welcome sẽ thực thi và trả về một chuỗi “This is the Welcome action method…”. Mặc định MVC map theo /[Controller]/[ActionName]/[Parameters]. Đối với URL này, controller là HelloWorld và Welcome là action method và không có sử dụng tham số.
Bây giờ chúng ta hãy điều chỉnh ví dụ để có thể pass tham số từ URL đến controller (ví dụ, /HelloWorld/Welcome?name=Scott&numtimes=4). điều chỉnh phương thức Welcome gồm hai tham số như bên dưới. Tham số numTimes mặc định được gán là 1 nếu không có giá trị của tham số truyền vào.
public string Welcome(string name, int numTimes = 1) {
return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}
Chạy ứng dụng của bạn và browse đến URL (http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4). Bạn có thể sử dụng giá trị khác để truyền vào cho tham số name và numTimes trong URL. Hệ thống sẽ tự động map tên tham số từ chuỗi truy vấn trong address bar với tham số trong phương thức.
Trong các ví dụ trên chúng ta đã làm việc với phần “VC” của MVC. đó là, view và controller. Thông thường chúng ta không muốn controller return về trực tiếp HTML, vì điều đó làm cho code của chúng ta trở nên rườm rà. Thay vào đó chúng ta sẽ dùng file view template riêng biệt để generate HTML reponse. Chúng ta sẽ làm điều đó trong phần tiếp theo.
(Bài viết được dịch từ: Getting Started with ASP.NET MVC 3 /Adding a Controller)