Получение имени controllerа из бритвы

Кажется, у меня трудное получение чего-то, что должно быть легко. Из моего представления, используя Razor, я хотел бы получить имя текущего controllerа. Например, если я здесь:

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

Как я могу получить имя controllerа MyController из выражения Razor:

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

Я новичок в MVC, поэтому, если это очевидный ответ, не нападайте на меня плохо.

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

ИЛИ ЖЕ

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

Добавление к ответу Коти Панги: два примера, которые он предоставил, не эквивалентны.

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

Это вернет имя controllerа, обрабатывающего представление, где выполняется этот код, тогда как

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

Это вернет имя controllerа, запрошенного в URL-адресе.

Хотя в большинстве случаев они будут одинаковыми, есть некоторые случаи, когда вы можете находиться внутри частичного представления, принадлежащего другому controllerу, и хотите получить имя controllerа «выше» в цепочке, и в этом случае требуется второй метод.

(Извинения за публикацию этого в качестве отдельного ответа, у меня пока нет репутации, чтобы прокомментировать его.)

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

MVC 3

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

MVC 4.5

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

Чтобы удалить необходимость использования вызова ToString()

 @ViewContext.RouteData.GetRequiredString("controller") 

Также, если вы хотите получить полное имя controllerа (с окончанием «Контролера»), вы можете использовать:

 ViewContext.Controller.GetType().Name 

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