.net Core Get Current Controller Name

3 min read Jun 03, 2024
.net Core Get Current Controller Name

Obtenir le nom du contrôleur actuel dans ASP.NET Core

Dans le développement d'applications web ASP.NET Core, il est souvent nécessaire d'obtenir le nom du contrôleur actuel pour des besoins tels que la journalisation, l'autorisation ou la redirection conditionnelle.

Voici quelques méthodes pour récupérer le nom du contrôleur actuel dans votre code ASP.NET Core :

1. Utilisation de ControllerContext

La méthode la plus simple consiste à utiliser la propriété ControllerContext disponible dans la classe Controller :

public class MyController : Controller
{
    public IActionResult Index()
    {
        string controllerName = ControllerContext.ActionDescriptor.ControllerName;
        // Utilisez controllerName ici
        return View();
    }
}

Ce code utilise la propriété ControllerName du descripteur d'action (ActionDescriptor) pour obtenir le nom du contrôleur actuel.

2. Utilisation de HttpContext

Vous pouvez également obtenir le nom du contrôleur en utilisant la propriété HttpContext :

public class MyController : Controller
{
    public IActionResult Index()
    {
        string controllerName = HttpContext.Request.RouteValues["controller"].ToString();
        // Utilisez controllerName ici
        return View();
    }
}

Ce code accède à la valeur "controller" dans la collection RouteValues du contexte de requête (HttpContext).

3. Utilisation de IHttpContextAccessor

Si vous avez besoin d'obtenir le nom du contrôleur en dehors d'un contrôleur, par exemple dans un service, vous pouvez utiliser l'interface IHttpContextAccessor :

public class MyService
{
    private readonly IHttpContextAccessor _httpContextAccessor;

    public MyService(IHttpContextAccessor httpContextAccessor)
    {
        _httpContextAccessor = httpContextAccessor;
    }

    public string GetCurrentControllerName()
    {
        string controllerName = _httpContextAccessor.HttpContext.Request.RouteValues["controller"].ToString();
        return controllerName;
    }
}

L'injection de dépendances vous permet d'accéder à la propriété HttpContext via l'instance IHttpContextAccessor.

Conclusion

Ces méthodes vous permettent de récupérer facilement le nom du contrôleur actuel dans ASP.NET Core. Choisissez la méthode qui convient le mieux à vos besoins et profitez de la flexibilité qu'elle offre dans votre code.

N'oubliez pas d'utiliser le nom du contrôleur de manière sécurisée et conforme aux meilleures pratiques de développement.

Related Post