2012-10-05 30 views

Trả lời

6

Tôi nghĩ rằng cách thích hợp nhất để làm điều này trong MVC là với filters
MSDN cung cấp một mô tả tốt của họ, và có hàng chục bài báo và explanatins về họ trên mạng, chẳng hạn như this one

EDIT This mẫu thậm chí còn tốt hơn: Nó cung cấp một bộ lọc hành động đơn giản, sau đó được đăng ký trong global.asax và được thực thi theo mọi yêu cầu, trước khi Hành động thực tế trong trình điều khiển thích hợp thực thi. Khái niệm này cho phép bạn truy cập đối tượng yêu cầu và sửa đổi bất cứ điều gì bạn muốn trước khi bộ điều khiển thực tế đang thực thi.

1

Bạn có thể đặt mã trong hàm tạo của bộ điều khiển. Như thế này:

public class FooController : Controller 
{ 
    public FooController() 
    { 
     doThings(); 
    } 
+0

Của mọi bộ điều khiển? Tôi muốn điều này được gọi trên mọi tải trang trong toàn bộ đơn đăng ký của tôi – Curt

+0

Nếu tôi có 100 bộ điều khiển thì sao? Tôi sẽ phải thêm điều này mỗi lần. Hơn nữa tôi phải nhớ thêm điều này với bất kỳ bộ điều khiển mới nào. Tôi không nghĩ rằng điều này là rất khả năng mở rộng. – Curt

+0

Có, bạn đã đúng. Xin lỗi, tôi không hiểu rằng bạn muốn điều này trên mọi chế độ xem trong ứng dụng của bạn. Câu trả lời basecontroller có vẻ tốt. – David

9

bạn có thể tạo một bộ điều khiển cơ sở lớp

public class BaseController : Controller 
{ 

    public BaseController() 
    { 
     // your code here 
    } 
} 

và để cho tất cả các bộ điều khiển mới của bạn impelement bộ điều khiển cơ sở như

public class MyController: BaseController 

cũng tôi đã tìm thấy các BaseController rất hữu ích để lưu trữ các chức năng khác tôi cần rất nhiều trong các bộ điều khiển khác

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