HttpContext.Current.Request.RequestContext.RouteData.Values [“controller”]。ToString()确实返回当前控制器名称,但在用户输入时返回它。
例如,我的应用包含“ImageGallery”控制器,如果用户输入http://localhost/imagegallery
来获取它 - 那么我从RouteData.Values而不是“ImageGallery”获得“imagegallery”。
如何获取原始控制器名称?
答案 0 :(得分:0)
您可以获得用户输入的内容,因为它通常无关紧要(unless you are Linux/Unix)。但是,如果您的问题涉及的路线无法正确解决,那么您可能正在寻找this StackOverflow question吗?
答案 1 :(得分:0)
也许您可以获得控制器的实际CLR实例,并从您的视图中获取名称...
@if (this.ViewContext.Controller is MyController)
{
}
并且可能删除它的名字的“控制器”部分......如
this.ViewContext.Controller.GetType().Name.Replace("Controller", "")
PS:为了简化这篇文章,使用了.Replace(string, string)
,但最好使用.Substring(int, int)
来电。
编辑:如果您不在视图中,也可以从Controller上下文中获取当前控制器(尽管您将在控制器中,this.GetType()
会执行此操作它