Obtenir le nom du contrôleur du razor

Il me semble avoir de la difficulté à obtenir quelque chose qui devrait être facile. De mon sharepoint vue, en utilisant Razor, je voudrais obtenir le nom du contrôleur actuel. Par exemple, si je suis ici:

http://www.example.com/MyController/Index 

Comment puis-je obtenir le nom du contrôleur, MyController partir d’une expression Razor:

 @* Obviously this next line doesn't work @Controller.Name *@ 

Je suis nouveau sur MVC, alors si c’est une réponse évidente, ne m’attaque pas trop mal.

 @{ var controllerName = this.ViewContext.RouteData.Values["controller"].ToSsortingng(); } 

OU

 @{ var controllerName = HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToSsortingng(); } 

Un addendum à la réponse de Koti Panga: les deux exemples qu’il a fournis ne sont pas équivalents.

 var controllerName = this.ViewContext.RouteData.Values["controller"].ToSsortingng(); 

Ceci renverra le nom du contrôleur gérant la vue où ce code est exécuté, alors que

 var controllerName = HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToSsortingng(); 

Cela renverra le nom du contrôleur demandé dans l’URL.

Bien que ceux-ci soient certainement les mêmes dans la plupart des cas, il peut arriver que vous vous trouviez dans une vue partielle appartenant à un autre contrôleur et que vous souhaitiez obtenir le nom du contrôleur “plus haut dans la chaîne” dans la chaîne. deuxième méthode est requirejse.

(Toutes mes excuses pour avoir posté cette réponse séparément; je n’ai pas encore la réputation de commenter la sienne.)

 @HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToSsortingng(); 

MVC 3

 @ViewContext.Controller.ValueProvider.GetValue("controller").RawValue 

MVC 4.5

 @ViewContext.RouteData.Values["controller"].ToSsortingng(); 

Pour supprimer la nécessité d’utiliser l’appel ToSsortingng()

 @ViewContext.RouteData.GetRequiredSsortingng("controller") 

De plus, si vous voulez obtenir le nom complet du contrôleur (avec la fin “Controller”), vous pouvez utiliser:

 ViewContext.Controller.GetType().Name 

@ ViewContext.RouteData.Values ​​[“controller”]. ToSsortingng ();