.NET - 如何解析一个 URL,然后从中构建一个新的 URL?

问题描述 投票:0回答:2

我正在使用 ASP.NET Core 6 MVC。

我从请求中读取了返回的 URL,然后我想将用户重定向到这个站点。获取 URL 的一部分不是问题,但我不知道之后如何使用参数。

我目前有:

var previous = Request.Query["ReturnUrl"].ToString().TrimStart('/');
var path = previous.Split("/");

if (Url.IsLocalUrl(url))
{
    return RedirectToAction(path[0], path[1]);
}

我现在将有一个带有

(Controller, Action+Params)
的数组。当我只有控制器+动作(
Home/Index
)时,上面的没问题,但是当我有参数的时候,它就不起作用了。 (
Home/Index?id=123
,
Home/Index?id=123&action=nothing
,
www.mysite.com
, 等等).

我如何正确解析它然后将其用于重定向?或者是否可以阅读完整的

ReturnUrl
,然后将其用作重定向?我也没有找到如何做到这一点的方法。

我找到了

QueryString
类,但是为此,我必须先解析传入的URL。

有什么想法吗?

parsing url .net-core asp.net-core-mvc
2个回答
0
投票

但是当我有一些带有参数的东西时,它就不起作用了。

你想要这样的东西吗?

public IActionResult Index()
{
    return RedirectToAction("Privacy", new { id = 1 });    
}

public IActionResult Privacy(int id)
{
    return View();
}

结果:


0
投票

您可以使用这样的

Request.QueryString
方法:

string returnUrl = Request.QueryString["ReturnUrl"];

if (Url.IsLocalUrl(returnUrl))
{
    return Redirect(returnUrl);
}
© www.soinside.com 2019 - 2024. All rights reserved.