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

ASP.NET Core 3.1 MVC中如何用a标签完整传递QueryString?

在.NET Core 3.1中传递完整查询字符串到另一页面的方法

你的代码报错是因为asp-route的用法错误,它用于绑定单个路由参数,而非直接传递整个查询字符串。以下是两种可行的解决方法:

方法1:直接拼接href属性

通过Url.Action生成目标Action的基础URL,再拼接当前请求的查询字符串:

<a href="@Url.Action("VerifiedAll")@Context.Request.QueryString.Value" class="btn btn-manage">Verified All</a>

这种方式简单直接,若当前无查询字符串,也不会生成多余的?符号。

方法2:使用asp-all-route-data(更安全)

先将查询字符串转换为字典,再通过asp-all-route-data自动绑定所有参数,框架会处理参数编码:

@{
    // 将查询参数转换为字典
    var queryDict = Context.Request.Query.ToDictionary(kv => kv.Key, kv => kv.Value.ToString());
}

然后在a标签中使用:

<a asp-action="VerifiedAll" asp-all-route-data="queryDict" class="btn btn-manage">Verified All</a>

原代码错误原因

asp-route的正确用法是指定单个路由参数名(如asp-route-id="123"),直接传入整个查询字符串会让路由框架无法解析,因此无法生成有效的href属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:37:04