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.