92 votes

Comment obtenir le nom du contrôleur et de l'action dans OnActionExecuting ?

Est-il possible de déterminer le contrôleur/action en cours d'exécution dans OnActionExecuting ?

1voto

Rohan Rewale Points 19
var controllerName = (string)routingValues["controller"];

var actionName = (string)routingValues["action"];

-1voto

burzhuy Points 760

Je suppose que vous utilisez des attributs (par exemple ActionFilterAttribute ), si c'est le cas, vous pouvez obtenir

  • action Constructeur d'attribut de formulaire de nom :

        public CustomProfileAttribute([CallerMemberName]  string caller = null)
        {
            _actionName = caller;
        }
  • contrôleur nom :

        public CustomProfileAttribute([CallerMemberName]  string caller = null)
        {
            _controllerName = context.Controller.ToString()
  • ou les deux contrôleur et action :

        public override void OnActionExecuting(ActionExecutingContext context)
        {
            var controllerAndAction = context.ActionDescriptor.DisplayName;

    mais dans ce cas, vous aurez un nom affreux tel que controller.action (action)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X