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

如何使用asp-action跳转视图且不触发HttpPost方法?

解决ASP.NET Core中asp-action跳转时避免触发HttpPost的问题

方法1:修改表单的请求方式为GET

默认情况下,ASP.NET Core的form标签配合asp-action生成的表单会使用POST请求,所以点击提交按钮会触发对应Action的HttpPost方法。只需给表单添加method="get"属性,就能让请求变为GET,直接跳转至目标视图:

<form asp-action="你的目标Action名" asp-controller="你的目标Controller名" method="get">
    <button type="submit" class="btn-link dropdown-item">
        <i class="mdi mdi-xxx font-size-16 align-middle me-1"></i> 
        跳转至目标页面
    </button>
</form>

这样点击按钮后,会发起GET请求调用对应Action的HttpGet方法,返回包含表单的视图,不会触发POST逻辑。

方法2:用<a>标签替代表单+按钮

既然你的需求是跳转导航,用<a>标签其实更符合语义,同时也能继续使用asp-action生成正确的路由链接,样式上可以通过类名调整成和按钮一致的效果:

<a asp-action="你的目标Action名" asp-controller="你的目标Controller名" class="btn-link dropdown-item text-decoration-none">
    <i class="mdi mdi-xxx font-size-16 align-middle me-1"></i> 
    跳转至目标页面
</a>

<a>标签默认就是GET请求,点击后直接导航到目标视图,完全不会触发POST方法,比用表单更简洁。

为什么改button类型为button没用?

当你把按钮类型改成button时,它默认不会触发表单的提交事件,所以点击后自然没有任何响应。如果一定要用这种方式,你得手动加JS来处理导航,但完全没必要,上面两种方法更直接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:45:32