如何在Razor Pages中重定向到带查询参数的URL?
在Razor Pages中生成带查询参数的重定向URL
要从路由参数形式的URL切换为查询参数形式,你可以通过以下两种方式实现:
方法1:修改目标页面的路由配置
如果你的EmailConfirmation.cshtml页面当前的@page指令包含了email路由参数(比如@page "{email}"),只需将其修改为不带该参数的基础路由:
@page
此时再调用原代码:
return RedirectToPage("/EmailConfirmation", new { email = command.Email });
Razor Pages会因为找不到匹配的路由参数,自动将email转换为查询参数,生成你需要的https://localhost:5001/EmailConfirmation?email=example@gmail.com。
方法2:手动构造带查询参数的URL
如果需要保留目标页面的路由参数配置,或者要强制生成查询参数,可以手动构造URL后使用Redirect方法:
// 使用Url.Page生成查询参数形式的URL var targetUrl = Url.Page("/EmailConfirmation", values: new { email = command.Email }); return Redirect(targetUrl); // 或者直接拼接(注意对邮箱地址进行URL编码) var encodedEmail = Uri.EscapeDataString(command.Email); var targetUrl = $"/EmailConfirmation?email={encodedEmail}"; return Redirect(targetUrl);
内容的提问来源于stack exchange,提问作者Jush Stone
相关产品推荐
相关产品推荐

