6

Nói rằng tôi có:Thứ tự thực thi khi giao dịch với Bộ lọc hành động .NET MVC 2 là gì?

[Attribute1(Order=0)] 
public class Controller1 
{ 
    [Attribute2] 
    [Attribute3] 
    public ActionResult Action1() { ... } 
} 

Các thuộc tính được thực hiện theo trình tự sau: 2, 3, 1

này có ý nghĩa bởi vì thuộc tính 2 và 3 có một thứ tự -1 và sẽ được thực thi trước khi thuộc tính 1 trong đó có một trật tự thiết lập một cách rõ ràng bằng 0.

Bây giờ, cho phép nói rằng tôi có:

[Attribute1] 
[Attribute2(Order=0)] 
public class Controller1 
{ 
    [Attribute3] 
    public ActionResult Action1() { ... } 
} 

Các các thuộc tính được thực hiện theo thứ tự sau: 1, 2, 3

Tại sao thuộc tính 2 trong trường hợp này (có đơn hàng bằng 0) được thực thi trước thuộc tính 3 (có thứ tự bằng -1)?

Trả lời

3

Chúng sẽ được thực hiện theo thứ tự 1, 3, 2, giống như bạn đã đề xuất. Và trên thực tế, chúng thực hiện đúng thứ tự trên máy của tôi.

Bạn có thể cung cấp các định nghĩa về ba thuộc tính của mình không? Có thể có thứ gì đó khác đang chơi ở đây.

+0

Ahh! Tôi hoàn toàn bỏ qua điều đó, trong hoàn cảnh của tôi, Attribute3 là OnResultExecuting thay vì OnActionExecuting. Điều này có ý nghĩa bây giờ. Cảm ơn sự giúp đỡ của bạn về điều này. – user357933

Các vấn đề liên quan