【问题标题】:Appending Route parameter to href将 Route 参数附加到 href
【发布时间】:2025-11-28 19:50:01
【问题描述】:

我是 ASP.NET 的初学者,我正在尝试将参数附加到 href 链接。

我不确定如何让 href 看起来像 https://www.itelde.com/flick?id=113

HTML

<a href="https://www.itelde.com/flick?id=" asp-route-id="@Model" target="_blank">
    Flicker
</a>

控制器

public async Task<IActionResult> Flicker([BindRequired, FromQuery] string id)
{
    return id;
}

【问题讨论】:

    标签: asp.net asp.net-core razor


    【解决方案1】:

    如果您直接设置 href 本身,那么您可以在这里连接这些东西:

    <a href="https://www.itelde.com/flick?id=@Model" target="_blank">Flicker</a>
    

    当您生成href 时,可以使用asp-route-id 标签助手,方法是使用asp-pageasp-action 来引用应用程序中的Razor 页面或控制器操作。例如,如果 Flicker 操作是您应用的一部分,您可以这样编写:

    <a asp-action="Flicker" asp-route-id="@Model" target="_blank">Flicker</a>
    

    如果您尝试将asp-route-something 与显式href 一起使用,您还应该在运行时收到以下错误:

    InvalidOperationException:无法覆盖 的“href”属性。具有指定 'href' 的 不得具有以 'asp-route-' 或 'asp-action'、'asp-controller'、'asp-area'、'asp-route'、'asp 开头的属性-protocol'、'asp-host'、'asp-fragment'、'asp-page' 或 'asp-page-handler' 属性。

    【讨论】: