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

为什么Asp.Net Core Razor页面点击提交按钮时HttpPost方法不触发

你当前的问题核心是表单未指定提交到的目标Action地址,默认会提交到当前页面加载时对应的路由(也就是你访问Index页面的路由),所以触发了Index方法而非SaveDocument方法。


修正方案

  • 方案1:使用ASP.NET Core内置的Tag Helper指定提交目标
    首先确认你的Views/_ViewImports.cshtml文件中已经引入了Tag Helper:

    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
    

    然后修改Razor中的form标签,添加asp-action属性指定提交到SaveDocument方法:

    <form method="post" asp-action="SaveDocument">
    

    如果提交目标不在当前控制器,还可以补充asp-controller="Sample"属性。

  • 方案2:直接手动指定action路径
    不需要Tag Helper的话,直接写全action地址即可:

    <form method="post" action="/Sample/SaveDocument">
    

额外排查点

如果修改后仍未生效,检查以下两项:

  • 你的Partial视图中是否存在嵌套的<form>标签,嵌套表单会导致外层表单提交逻辑失效
  • 控制器的路由配置是否有自定义规则拦截了/Sample/SaveDocument的路由匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 23:30:04