You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor Server本地化控制器重定向丢失URL参数的解决方法咨询

解决Blazor Server语言切换时重定向丢失查询参数的问题

要解决重定向时丢失查询参数的问题,只需在控制器中读取请求的查询参数,再将其拼接到重定向的目标URL中即可。

修改后的控制器代码(以enUS控制器为例)

[Route("/[controller]")]
[ApiController]
public class enUS : ControllerBase
{
    public ActionResult SetCulture()
    {
        // 设置语言Cookie
        Response.Cookies.Append(CookieRequestCultureProvider.DefaultCookieName,
            CookieRequestCultureProvider.MakeCookieValue(new RequestCulture("en-US")));

        // 获取请求中的所有查询参数
        var queryParams = HttpContext.Request.Query;
        // 构造符合规范的查询字符串
        var queryString = QueryString.Create(queryParams);
        // 拼接最终重定向URL
        var redirectUrl = $"/{queryString}";

        return Redirect(redirectUrl);
    }
}

关键说明

  • 通过HttpContext.Request.Query可获取请求携带的所有查询参数,兼容单个或多个参数的场景。
  • 使用QueryString.Create(queryParams)能自动生成合规的查询字符串,避免手动拼接出现格式错误。
  • 若只需保留特定参数(比如仅保留link),可单独提取处理:
    var linkParam = HttpContext.Request.Query["link"];
    var queryString = string.IsNullOrEmpty(linkParam) ? "" : $"?link={linkParam}";
    var redirectUrl = $"/{queryString}";
    

修改后,访问https://localhost:7058/enUS/?link=OQ==时,会重定向到https://localhost:7058/?link=OQ==,参数不会丢失。

内容的提问来源于stack exchange,提问作者Simon3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:57:10