Как получить имя действия от базового контроллера? - PullRequest
5 голосов
/ 27 мая 2010

Я хотел бы реализовать базовый контроллер на одном из моих контроллеров. В этом базовом контроллере я бы хотел получить текущее имя исполняемого ActionResult.

Как бы я поступил так?

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

И *; 1006 *

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

1 Ответ

15 голосов
/ 27 мая 2010

Вы не можете знать это в конструкторе контроллера, так как в данный момент создается экземпляр контроллера, и никакие действия еще не могут быть вызваны. Однако вы можете переопределить метод Initialize и извлечь имя действия из механизма маршрутизации:

protected override void Initialize(RequestContext requestContext)
{
    base.Initialize(requestContext);
    var actionName = requestContext.RouteData.Values["action"];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...