我如何获得引荐乌里控制器和动作的名字呢? [英] How do I get the Controller and Action names from the Referrer Uri?

查看:112
本文介绍了我如何获得引荐乌里控制器和动作的名字呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有大量的信息从控制器和动作名称建立尤里斯,但我怎么能围绕这样做的其他方式?

There's a lot of information for building Uris from Controller and Action names, but how can I do this the other way around?

基本上,所有我想要实现的是获得引用页(即Request.UrlReferrer)控制器和动作名称。有没有一种简单的方法来实现这一目标?

Basically, all I'm trying to achieve is to get the Controller and Action names from the referring page (i.e. Request.UrlReferrer). Is there an easy way to achieve this?

推荐答案

我想这应该做的伎俩:

// Split the url to url + query string
var fullUrl = Request.UrlReferrer.ToString();
var questionMarkIndex = fullUrl.IndexOf('?');
string queryString = null;
string url = fullUrl;
if (questionMarkIndex != -1) // There is a QueryString
{    
    url = fullUrl.Substring(0, questionMarkIndex); 
    queryString = fullUrl.Substring(questionMarkIndex + 1);
}   

// Arranges
var request = new HttpRequest(null, url, queryString);
var response = new HttpResponse(new StringWriter());
var httpContext = new HttpContext(request, response)

var routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(httpContext));

// Extract the data    
var values = routeData.Values;
var controllerName = values["controller"];
var actionName = values["action"];
var areaName = values["area"];

我的Visual Studio是目前下跌了,所以我无法测试它,但它应该工作正常。

My Visual Studio is currently down so I could not test it, but it should work as expected.

这篇关于我如何获得引荐乌里控制器和动作的名字呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆