The HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString() Indeed return the current controller name but it return it as the user type it.
For example, my app contains "ImageGallery" controller and if the user type http://localhost/imagegallery
to get it - then I get "imagegallery" from the RouteData.Values instead of "ImageGallery".
How can I get the original controller name?