2010-05-27 19 views
5

मैं अपने नियंत्रकों में से एक पर बेस नियंत्रक को कार्यान्वित करना चाहता हूं। उस बेस नियंत्रक के भीतर, मैं वर्तमान निष्पादन ActionResult नाम प्राप्त करने में सक्षम होना चाहता हूं।मैं बेस नियंत्रक से कार्रवाई का नाम कैसे प्राप्त करूं?

मैं यह करने के बारे में कैसे जाउंगा?

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

और;

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

उत्तर

14

आप इसे नियंत्रक के निर्माता में नहीं जानते क्योंकि नियंत्रक वर्तमान में तत्काल हो रहा है और अभी तक कोई कार्रवाई नहीं की जा सकती है। लेकिन अगर आप Initialize विधि ओवरराइड और अनुमार्गण इंजन से कार्रवाई का नाम लाने सकता है:

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

आह, शानदार! धन्यवाद @ डारिन। – griegs

+0

@griegs, आप स्वागत से अधिक हैं। –

संबंधित मुद्दे