2010-05-27 31 views
5

Tôi muốn triển khai bộ điều khiển cơ sở trên một trong các bộ điều khiển của mình. Trong bộ điều khiển cơ sở đó, tôi muốn có thể lấy tên ActionResult hiện tại.Làm cách nào để lấy tên hành động từ bộ điều khiển cơ sở?

Tôi làm cách nào để thực hiện việc này?

public class HomeController : ControllerBase 
{ 
    public ActionResult Index() 
    { 

Và;

public class ControllerBase : Controller 
{ 
    public ControllerBase() 
    { 
     //method which will get the executing ActionResult 
    } 
} 

Trả lời

14

Bạn không thể biết điều này trong hàm tạo của bộ điều khiển vì bộ điều khiển hiện đang được khởi tạo và không có hành động nào có thể được gọi. Tuy nhiên, bạn có thể ghi đè phương thức Initialize và tìm nạp tên hành động từ công cụ định tuyến:

protected override void Initialize(RequestContext requestContext) 
{ 
    base.Initialize(requestContext); 
    var actionName = requestContext.RouteData.Values["action"]; 
} 
+0

Ah, rực rỡ! Cảm ơn @Darin. – griegs

+0

@griegs, bạn được chào đón nhiều hơn. –

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