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 on Sun Jul 05, 2015 9:20 pm

Admin

avatar

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.




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.

Action Index return View (giao diện), do đó ta thêm View cho Action này.

Thêm View cho Action



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ả.

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

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.

Đị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.

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

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


_________________
Có nỗi buồn triền miên, làm trái tim hoá đá
Có những dòng lệ nhỏ, khiến đá hoá thành tim.

-------------------------------------------------------------------------------------------------------
Program Skills:  ASP.Net MVC 3/4; C#; VB.Net/ VB 6.0; Java Applet/Swing; JS/JavaScript; Bootstrap/ AngularJS; HTML/CSS; Turbo C/ Turbo C++; Pascal...
Xem mẫu Phần mêm quản lý ở đây     -           Xem mẫu Bán hàng trực tuyến ở đây
Nguyễn Ích Hoàn
new_life02081989@yahoo.com
nguyenichhoan1989@gmail.com
Xem lý lịch thành viên http://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