首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RouteData.Values

RouteData.Values
EN

Stack Overflow用户
提问于 2012-03-10 23:08:29
回答 2查看 1.2K关注 0票数 0

HttpContext.Current.Request.RequestContext.RouteData.Values"controller".ToString()确实会返回当前的控制器名称,但它会在用户输入时返回该名称。

例如,我的应用程序包含"ImageGallery“控制器,如果用户输入http://localhost/imagegallery来获取它,那么我将从RouteData.Values中获取"ImageGallery”而不是"imagegallery“。

如何获取控制器的原始名称?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-11 07:40:38

也许你可以获得控制器的实际CLR实例,并从那里获得视图的名称……

代码语言:javascript
复制
@if (this.ViewContext.Controller is MyController)
{
}

也许去掉它名字中的“控制器”部分...喜欢

代码语言:javascript
复制
this.ViewContext.Controller.GetType().Name.Replace("Controller", "")

PS:为了这篇文章的简单性,我使用了.Replace(string, string),但是使用.Substring(int, int)调用可能更好。

编辑:如果您不在视图中,也可以从控制器上下文中获取当前控制器(尽管您在控制器中,在这种情况下,this.GetType()将执行此操作。

票数 0
EN

Stack Overflow用户

发布于 2012-03-10 23:17:26

您将获得用户输入的内容,因为这通常无关紧要(unless you are Linux/Unix)。但是,如果您的问题处理的路由不能正确解决,那么也许this StackOverflow question就是您正在寻找的?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9647468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档