我有一个网址。是否有可能以某种方式获得控制器和操作名称和路由值?是否有可能获得从URL(基于Global.asax中路由)的控制器,操作和routeValues?
1
A
回答
3
它是可能的(这通常通过基于在global.asax中定义的.NET MVC框架来产生),检查Haacked routing debugger。
6
在哪里,当你想要得到的值?
从你的代码中,你可以拨打:
HttpContextBase context = new HttpContextWrapper(HttpContext.Current);
RouteData rd = RouteTable.Routes.GetRouteData(context);
if (rd != null) {
string controllerName = rd.GetRequiredString("controller");
string actionName = rd.GetRequiredString("action");
}
请注意,从应用程序的代码中这仅适用。肯定是有没有办法让有关其他网站和应用程序的信息。
0
您可以通过添加的Application_BeginRequest方法您Global.asaxcs文件中获得当前控制器的名称和动作名称。
下面是一个例子:
protected void Application_BeginRequest(object sender, EventArgs args)
{
HttpContextBase currentContext = new HttpContextWrapper(HttpContext.Current);
UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
RouteData routeData = urlHelper.RouteCollection.GetRouteData(currentContext);
string url = currentContext.Request.Url.AbsoluteUri;
string httpMethod = currentContext.Request.HttpMethod;
string action = routeData.Values["action"] as string;
string controller = routeData.Values["controller"] as string;
if (!string.IsNullOrEmpty(controller) && !string.IsNullOrEmpty(action))
{
Logger.Log(controller, action, url, httpMethod);
}
}
相关问题
- 1. 是否有可能获得网关/路由器IP在Java中
- 2. 由于我为控制器的特定操作编写了路由,是否需要为控制器内的所有操作编写路由?
- 3. 路由Temproray URL到控制器和操作
- 4. 在url中没有控制器和动作的路由
- 5. 获取当前控制器和发送到路由的操作
- 6. MVC4 Web API - 是否可以从单个控制器中添加非标准和自定义操作的路由?
- 7. 是否有可能同时具有GET和POST异步控制器操作?
- 8. 简单URL重定向器的路由配置和控制器操作参数
- 9. 路由请求到基于路由参数的控制器
- 10. MVC阻止基类控制器操作被路由到
- 11. Rails:是否可以从资产文件获取控制器和操作名称?
- 12. MVC,动态路由,Unity,确定目前的控制器是否存在global.asax
- 13. 从控制器检索操作的URL
- 14. 在URL中没有控制器的路由在路径中
- 15. 从url获取控制器名称和操作名称
- 16. 是否有可能获得位图的点作为路径?
- 17. RedirectToAction从不同的控制器和参数/ routevalues不工作
- 18. 是否有可能从Swift中的UITextField中获得UIPickerView和UIDatePicker?
- 19. MVC路由在1个操作的URL中没有可见的操作,但仅在URL中显示同一控制器上的另一个操作的ID?
- 20. 没有控制器或操作名称的Asp.net mvc路由
- 21. 是否可以在Zend框架中路由我的简单URL(不指定模块,控制器和动作)?
- 22. 以编程方式获取路由到控制器动作(url)
- 23. 路由和控制操作 - 可选数据
- 24. 如何路由到新的铁路控制器操作
- 25. 是否有可能返回特定控制器操作的输出(html)?
- 26. 如何从url或路由数据获取控制器类型和操作信息?
- 27. 如何从路由名称中检索控制器和操作名称?
- 28. 从codeigniter中的url中删除控制器名称与路由
- 29. 在Rails中创建基于控制器的通用路由
- 30. 是否可以根据url获取控制器和操作(不是他们的名字!!)?
我想我最好问 - 你为什么想知道?根据控制器/动作/路线值的名称作出决定会让你的代码松散耦合。 – belugabob 2010-01-09 21:57:18