Khoanglang89
Bạn hãy đăng nhập hoặc đăng ký
Khoanglang89
Bạn hãy đăng nhập hoặc đăng ký
Khoanglang89

NHẬN THIẾT KẾ WEBSITE/ SOFTWARE - LÀM ĐỒ ÁN TỐT NGHIỆP, ĐỒ ÁN CHUYÊN MÔN NGÀNH CÔNG NGHỆ THÔNG TIN


You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

1[MVC5 Series - P2] Controllers  Empty [MVC5 Series - P2] Controllers Sun Jul 05, 2015 9:20 pm

Admin

Admin

Admin
Admin
Loading

[MVC5 Series - P2] Controllers


Part 1 [MVC5 Series - P1] Giới thiệu về ASP.NET MVC 5

Tạo 1 Controller

Controller là thành phần chứa các Action.
[MVC5 Series - P2] Controllers  Mvc5-new-controller-1

[MVC5 Series - P2] Controllers  Mvc5-new-controller-2
[MVC5 Series - P2] Controllers  Mvc5-new-controller-3
Controller có dạng XXXController, ví dụ như
Code:
DefaultController
. Đây là quy ước của hệ thống để xử lý, còn khi gọi Controller, ta chỉ cần ghi
Code:
Default
.

Khám phá Action

Action là các phương thức điều khiển và đáp ứng yêu cầu của người dùng.
[MVC5 Series - P2] Controllers  Mvc5-action
Action Index return View (giao diện), do đó ta thêm View cho Action này.

Thêm View cho Action

[MVC5 Series - P2] Controllers  Mvd5-add-view
[MVC5 Series - P2] Controllers  Mvc5-view
Khi thêm View cho Action, một thư mục có tên của Controller sẽ tự động thêm vào (nếu chưa có), và lấy tên của Action làm tên của View đó.
Vậy là ta đã có thành phần xử lý (Controller) và thành phần hiển thị (View). Bây giờ thử chỉnh sửa View và xem kết quả.
[MVC5 Series - P2] Controllers  Mvc5-run-test
Nếu bây giờ bạn có chút thắc mắc thì cũng tốt thôi. Tại sao những thẻ HTML lại không nằm trong 1 trang HTML? Cú pháp @{ ... } là gì? Và điều quan trọng là những thứ như navbar, footer ở đâu ra?
Bạn chỉ cần biết một số điều sau, những thứ còn lại bạn sẽ được hiểu sau này:

  1. Hãy xem phần mở rộng của file View, nó có đuôi là .cshtml, tức là trộn chung giữa mã C# và HTML. Đây là cấu trúc Razor mà bạn sẽ áp dụng để viết giao diện cho View. Tuy bạn có thể tạo project MVC sử dụng Web form nhưng "người ta" (tham khảo) khuyên là nên sử dụng cấu trúc Razor trong MVC để tối ưu hóa xử lý.
  2. Dĩ nhiên, @{ ... } là 1 dạng mã Razor mà các bạn sẽ được biết sau này.
  3. Đây là lúc cần liên tưởng tới Web form, có thể xem navbar, footer như 1 trang Master Page, View chỉ là 1 trang con được nhúng trong Master Page.

Action Result

Quay lại với Action Index trong TestController, ta thấy kết quả trả về của Action là 1 ActionResult, với kiểu này bạn có thể trả về nhiều kết quả khác nhau tùy thuộc vào mục đích sử dụng của bạn.

  1. View() trả về View được bọc trong layout (Master Page)
  2. PartialView() giống như View, nhưng sẽ không được bọc trong layout, ví dụ nếu như trong Action Index return PartialView(), ta sẽ không nhìn thấy footer hoặc navbar nữa, chỉ có View Index thôi.
  3. Content() trả về text.
  4. Json() trả về dữ liệu Json.
  5. Javascript() trả về nội dung javascript
  6. File() trả về nội dung file không bao gồm layout.
  7. RedirectToAction() chuyển sang 1 Action khác.
  8. Redirect() chuyển sang một url khác.

Vậy hãy thử một kiểu trả về khác trong Action
[MVC5 Series - P2] Controllers  Mvc5-return-content
Vấn đề ở đây là làm sao để chạy Action Hello khi mà nó không có giao diện (nó trả về chỉ là text). Vì Content() thường được dùng để test dữ liệu, cho nên cách chạy ở đây sẽ là...nhập url cho nó. Bạn hãy chạy Action Index, sau đó chuyển url sang Action Hello bằng cách sau.
[MVC5 Series - P2] Controllers  Mvc5-change-url

Định tuyến

Định tuyến (routing) là việc cấu hình đưa ra định dạng mẫu của url, url gọi các Action nằm trong Controller.
[MVC5 Series - P2] Controllers  Mvc5-route-config
Như trên, url có dạng {controller}/{action}/{id}, và ý nghĩa sẽ là (ví dụ với Test/Hello):

  1. Nếu không có {id} sẽ là
    Code:
    http://localhost:30383/Test/Hello
    , và sẽ chạy Action Hello của controller Test
  2. Nếu không có {action} sẽ là
    Code:
    http://localhost:30383/Test
    , và nó sẽ chạy Action Index của controller Test(mặc định)
  3. Nếu không có {controller} sẽ là
    Code:
    http://localhost:30383
    , và bạn đoán xem nó sẽ chạy Action nào? Nó sẽ chạy cái url Default tức là
    Code:
    http://localhost:30383
    =
    Code:
    http://localhost:30383/Home
    =
    Code:
    http://localhost:30383/Home/Index


Ví dụ chạy Action About của controller Home
[MVC5 Series - P2] Controllers  Mvc5-home-about

Kết

Bài này mình xin dừng lại ở đây. Bài tiếp theo sẽ là cách tiếp nhận tham số trong Action.
Part 3 Action IO


http://phantienquang.blogspot.com/2014/09/mvc5-series-p2-controllers.html

https://khoanglang89.forumvi.com

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Bài viết mới cùng chuyên mục

    Bài viết liên quan với[MVC5 Series - P2] Controllers

      Permissions in this forum:
      Bạn không có quyền trả lời bài viết