Tạo controller đầu tiên cho dự án .net mvc6 P2


Model-View-Controller (MVC) mô hình kiến ​​trúc tách ứng dụng thành ba thành phần chính: Model, View, và Controller. Các mô hình MVC giúp bạn tạo ra các ứng dụng có phát triển và bảo trì dễ dàng hơn

Trong hướng dẫn này, một mô hình Phim lấy dữ liệu phim từ một cơ sở dữ liệu, cung cấp cho nó để xem hoặc cập nhật nó. cập nhật dữ liệu được ghi vào một cơ sở dữ liệu SQL Server. Moder : xem là các thành phần hiển thị giao diện người dùng của ứng dụng (UI). Nhìn chung, giao diện người dùng này sẽ hiển thị các dữ liệu mô hình. Control: Lớp học có thể xử lý yêu cầu trình duyệt, lấy dữ liệu từ, và sau đó xử lý và trả về trình duyệt. Trong một ứng dụng MVC, View chỉ hiển thị thông tin

3 thành phần này được quản lý bởi 3 thư mục tương ứng như hình bên dưới

../../_images/mvc1.png
  • tromg Solution Explorer, click chuột phải vào phần Control và chọn Add > New Item.
../../_images/add_controller.png
  • Trong phần Add New Item 
    • chọn MVC Controller Class
    • Đặt tên cho control là “HelloWorldController”
    • Click Add
../../_images/new_hell_ctl.png
Control vừa tạo sẽ có code như sau  với đường dẫn tương đối Controllers/HelloWorldController.cs 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using Microsoft.AspNet.Mvc;
using Microsoft.Extensions.WebEncoders;

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...";
        }
    }
}
Mọi phương thức public trong control đều có thể gọi được ta thử chạy đoạn code dưới nhé
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
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...";
    }
}
Và đây là cách gọi đến hàm trong control từ trình duyệt khi chạy ở chế độ không debug (bấmCtrl+F5)
../../_images/hell1.png
MVC gọi phương thức mặc định trong controller classes  với các phương thức khác trong control ta gọi như sau trên trình duyệt /[Controller]/[tên hàm]/[tham số]
điều này được định nghĩa trong file Startup.cs 
1
2
3
4
5
6
    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
Khi bạn không truyền tham số nào trên trình duyệt mặc định MVC sẽ chọn control và action là Index 
kết quả trả về khi gọi tới control HelloWorld và phương thức webcome
../../_images/welcome.png
Bây giờ ta sẽ truyền thêm tham số vào phương thức Welcome
1
2
3
4
5
public string Welcome(string name, int numTimes = 1)
{
    return HtmlEncoder.Default.HtmlEncode(
        "Hello " + name + ", NumTimes is: " + numTimes);
}
Note
đoạn mã  HtmlEncoder.Default.HtmlEncode  bên trên giúp bạn loại bỏ những đoạn mã nguy hiểm được truyền từ trình duyệt
Note
Trong Studio 2015, khi bạn chạy ở chế độ không debug (Ctl+F5), bạn không cần buld lại web đơn giản chỉ save file và refesh trình duyệt 
Chạy trương trình và truyền tham số từ trình duyệt 
../../_images/rick4.png
Bài sau mình sẽ hướng dẫn tạo View để hiển thị dữ liệu mà control trả về.