2016-06-23 42 views
2

这可能是一个简单的问题,但我在查询字符串中与returnurl挣扎。我知道如何将查询字符串中的returnurl调用到Response.Redirect中,但我不确定如何将returnurl设置为某个url。有人能给我一个如何做到这一点的例子吗?指定returnURL在查询字符串

+0

喜欢的东西[这](http://www.dotnetperls.com/querystring) –

+1

点点混乱,你可以请更具体 –

+0

这将是奇怪的,你想要在后端指定返回url,当它是后端的作业,以回应该返回url请求.... –

回答

1

我有一个建议给你,我相信它有多适合你的情况。

让我定义一个静态Dictionary<string,string>来保存一些关键和相应的URL。由于它是静态定义的,您可以从其他所有页面访问它,因此此变量将获得应用程序范围。即,

public static Dictionary<string, string> URLDictonary = new Dictionary<string, string>() 
             { 
              {"google","http://google.com/"}, 
              {"dotnet","http://www.dotnetperls.com/"},  
              {"querystring","http://www.dotnetperls.com/querystring"} 
             }; 

因此,您可以将key名称与URL作为查询字符串附加。它可能看起来像下面这样:

Response.Redirect("~/Somepage.aspx?returnURL=google"); 
// Which means you are passing the key as query string 

现在你可以在样页得到这个key并重定向到基于密钥的特定页面,如下所示:

string returnURL = Request.QueryString["returnURL"]; 
if (returnURL != null) 
{ 
    Response.Redirect(URLDictonary[returnURL]); 
} 

由于我们传递google它会重定向到相应的值,即。 "http://google.com/"

注意:您可以使用自己的密钥和Url来创建类似的词典。如果在不同的类中定义,然后使用class_name.DictonaryName[querystring_value]

1

你能做到这一点,如下所示:

var url = Request.Url.ToString(); 
var uri = String.Format("http://example.com?page={0}", url); 
Response.Redirect(uri); 

的代码非常简单。

+2

在执行此操作之前,您需要对url进行编码,以确保正确处理特殊字符。 – Chris