Trong MVC chúng ta có thể trang trí các phương pháp hành động với các bộ lọc khác nhau nhưTrong thứ tự nào được thực hiện trong các bộ lọc asp.net MVC
[HttpPost]
[Authorize]
public ActionResult mymethod(){}
HttpPost
xuất phát từ MethodSelectorAttribute
(có thể là gián tiếp) và thuộc tính Authorize
thừa hưởng từ ActionFilterAttribute
.
Câu hỏi của tôi là: theo thứ tự nào chúng được thực thi trong đường ống yêu cầu MVC? Tôi đã cố gắng để tìm kiếm trong mã nguồn MVC nhưng không tìm thấy các bit mã có liên quan.
Tôi giả định thứ tự mà chúng được trả lại trong khi phản ánh có thể bị ảnh hưởng bởi thứ tự thực tế trong nguồn. –
@Hasan bhai đầu tiên của tất cả các tốt đẹp để xem bạn sau đó tôi tin rằng HttpPost là actionmethodSelector (phương pháp của nó isValidForRequest được gọi là) thuộc tính và Authorize là actionFilter thuộc tính (onActionExecuting của nó hoặc onActionExecuted được gọi) để họ phải được gọi tại thời điểm khác nhau. có lẽ HttpPost nên được gọi trước khi ủy quyền bởi vì chúng là các bộ lọc khác nhau và có trách nhiệm khác nhau. –
Dường như giả định của tôi sai. Câu trả lời của Eranga cho thấy rằng Bộ lọc có một cơ chế để xác định thứ tự của chúng. Tuy nhiên, vì HttpPost không phải là một bộ lọc khi nó xuất hiện. Nó có thể xử lý đặc biệt có lẽ bằng cách thực hiện nó trước bất cứ điều gì khác. Một lần nữa một giả định của nó. –