Làm thế nào mà tôi có thể tạo ra một phương thức trong bộ điều khiển và chỉ cần đặt một số đối số và nó con số nó ra sau khi tôi bấm vào một hình thức gửi? Dưới mui xe, làm thế nào để nó tìm ra phương pháp đúng và làm thế nào nó tìm ra rằng tôi chỉ muốn những đối số?Làm thế nào để asp.net mvc tìm ra?
Trả lời
Tóm lại:
Động cơ định tuyến xử lý các HttpRequest, và kiểm tra các URL được yêu cầu. Khi nó tìm thấy kết hợp tuyến đường đầu tiên, nó tạo ra một thể hiện mới là
MvcRouteHandler
và chuyển nó lên các mã thông báo bị hỏng của URL trong một RouteValueDictionary.Tuyến đường
MvcRouteHandler
nhận yêu cầu và cố gắng khởi tạo phiên bản lớp trình điều khiển. Theo quy ước, nó sẽ tìm một lớp được gọi là "XXXXXXController", trong đó X được thay thế bằng tham số {controller} trong tuyến.Sau khi tìm thấy bộ điều khiển, nó sẽ gọi phương thức thích hợp trên nó, được đưa ra bởi thông số {action} của tuyến đường. Bất kỳ đối số được đặt tên nào, chẳng hạn như {id}, tồn tại trong tuyến đường, được chuyển thành tham số cho phương thức.
Về cơ bản, mọi thứ mà ASP.Net MVC "biết" đều xuất phát từ thông tin tuyến đường. Nó không thể thần thánh các thông số từ không khí mỏng - chúng phải đến từ việc phân tích cú pháp tuyến đường. Nếu thông tin không có trong URL được yêu cầu, thông tin đó không thể được chuyển vào phương thức.
Cũng cần lưu ý rằng bạn có thể ghi đè hành vi của khung công tác bằng cách làm cho tuyến đường của bạn sử dụng trình xử lý thay thế thay vì MvcRouteHandler
. Khung công tác khá mở rộng, vì vậy bạn có thể cắm chức năng tùy chỉnh ở nhiều điểm.
Có khá nhiều mã đang chạy cho điều khiển, độ phân giải hành động và chế độ xem, cũng như ModelBinders. Rất nhiều điều có thể là tốt nhất để bạn xem xét các phần cụ thể của khung công tác và hỏi một câu hỏi chi tiết hơn để nhận được nhiều câu trả lời.
May mắn thay, ASP.NET MVC framework has been open-sourced, vì vậy nếu bạn tò mò về cách hoạt động, bạn có thể get the code và tự mình xem xét. Mã tuyệt vời của nó để đọc qua và bạn chắc chắn sẽ học được điều gì đó.
Thêm vào điểm câu hỏi của bạn, tuy nhiên, bạn nên xem các lớp System.Web.Mvc.MvcHandler và System.Web.Mvc.ControllerActionInvoker, điều này sẽ dẫn bạn đến đúng đường dẫn để trả lời câu hỏi của bạn.
- 1. Làm thế nào để tìm hiểu JSP/MVC, với kinh nghiệm trước đây trong ASP.Net MVC?
- 2. Làm thế nào để làm múi giờ trong ASP.NET MVC?
- 3. Làm thế nào để xử lý 'Xem không tìm thấy' InvalidOperationException trong asp.net MVC?
- 4. asp.net mvc dao cạo - làm thế nào để thoát ra khỏi C#
- 5. Làm thế nào để "vô hiệu hóa" các phần của bộ đệm đầu ra ASP.NET MVC?
- 6. Tìm hiểu ASP.NET MVC
- 7. Làm thế nào để thực hiện chức năng tìm kiếm trong C#/ASP.NET MVC
- 8. ASP.NET MVC: làm thế nào để ngăn chặn khóa phiên?
- 9. ASP.NET MVC đường tìm kiếm
- 10. Làm thế nào để tìm ra kích thước của phiên trong ASP.NET từ ứng dụng web?
- 11. Tìm hiểu Asp.Net WebForms hoặc Asp.Net MVC
- 12. Làm thế nào để cấu hình một dự án ASP.NET MVC để làm việc với Boo
- 13. asp.net: Làm thế nào để tìm div repeater trong backend?
- 14. Thực hiện tìm kiếm trong Asp.net MVC
- 15. Làm thế nào để tìm ra một id prog COM?
- 16. Làm thế nào để có được plugin Uploadify của jQuery để làm việc với ASP.NET MVC?
- 17. Dự án nguồn mở để tìm hiểu asp.net mvc 3
- 18. Làm thế nào để làm cho ASP.NET MVC làm việc trong IIS 6?
- 19. ASP.NET MVC Intellisense không tìm thấy ViewData
- 20. Chủ đề Asp.Net MVC, làm cách nào?
- 21. Làm thế nào để render một Razor View thành một chuỗi trong ASP.NET MVC 3?
- 22. Làm thế nào để bạn kiểm tra đơn vị hành động ASP.Net MVC JsonResult của bạn?
- 23. ASP.NET MVC 2 - Làm cách nào để sử dụng DropDownListFor?
- 24. Làm thế nào để thay thế thông báo lỗi ModelState mặc định trong Asp.net MVC 2?
- 25. Làm thế nào để sử dụng nguồn lực toàn cầu biên soạn trong ASP.NET MVC
- 26. ASP.NET MVC - Làm thế nào để truyền một mảng cho khung nhìn?
- 27. gì đã xảy ra với filterContext.Cancel (ASP.NET MVC)
- 28. Làm thế nào để làm ASP.NET MVC tích hợp thử nghiệm bằng cách sử dụng selenium
- 29. ASP.NET MVC PartialView không phát ra đánh dấu xác nhận
- 30. Làm thế nào để vượt qua datetime từ xem để điều khiển trong asp.net MVC
Từ tuyến đường hoặc bộ sưu tập trường mẫu. – GalacticCowboy
Bộ sưu tập trường biểu mẫu đi kèm với yêu cầu, nhưng nó không ảnh hưởng đến cách ASP.Net MVC tính toán mọi thứ. Biểu mẫu được đăng lên một URL đã cho (thường là cùng một bộ điều khiển đã tạo ra khung nhìn) và URL đó được xử lý bởi công cụ định tuyến. – womp