【问题标题】:Specify returnURL In QueryString在 QueryString 中指定 returnURL
【发布时间】:2016-06-23 14:15:27
【问题描述】:

这可能是一个简单的问题,但我正在努力处理查询字符串中的 returnurl。我知道如何将查询字符串中的 returnurl 调用为 Response.Redirect,但我不确定如何将 returnurl 设置为某个 url。谁能给我一个例子来说明如何做到这一点?

【问题讨论】:

  • 类似this
  • 有点混乱,请您说的更具体些
  • 当后端的工作是响应该返回 url 请求时,您想在后端指定返回 url 会很奇怪......
  • 嗨,杰米,你能提供更多的背景信息吗?像任何代码示例一样,还有框架?您使用的是 MVC、Asp Core、Web 表单吗?
  • 我添加了一个答案,基于我从问题中了解到的。请看一下

标签: c# asp.net query-string returnurl


【解决方案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"}
                                         };

这样您就可以将带有 URL 的 key 名称附加为查询字符串。它可能如下所示:

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/".

注意:您可以使用自己的键和网址创建类似的字典。如果它在不同的类中定义,则使用class_name.DictonaryName[querystring_value]

【讨论】:

    【解决方案2】:

    你可以这样做:

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

    代码非常简单。

    【讨论】:

    • 在执行此操作之前,您需要对 url 进行编码,以确保正确处理特殊字符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 2023-04-06
    • 2018-04-05
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    相关资源
    最近更新 更多