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

产品视图调用Cart控制器Post添加购物车按钮无响应问题求助

问题排查与解决

首先,submit类型的输入按钮必须放在<form>标签内部才能触发提交动作,你的代码里只有单独的<input>按钮,没有包裹表单,这是按钮无响应的核心原因。

修复方案1:用表单包裹按钮(推荐)

修改视图代码,添加<form>标签并利用ASP.NET Core的标签助手指定表单提交目标:

<div class="mb-3">
    <form asp-controller="Cart" asp-action="Add" method="post">
        <input type="hidden" name="productId" value="@Model.Id" />
        <input class="btn btn-primary" type="submit" value="Add to cart" />
    </form>
</div>

注意两点:

  • 用hidden字段传递productId参数,确保控制器方法能正确接收
  • 表单指定method="post",和控制器的[HttpPost]特性匹配

修复方案2:改用<button>标签结合asp-post助手

如果不想用表单,也可以用<button>标签直接生成POST请求:

<div class="mb-3">
    <button class="btn btn-primary" asp-controller="Cart" asp-action="Add" asp-route-productId="@Model.Id" asp-method="post">
        Add to cart
    </button>
</div>

这里要注意:路由参数名要和控制器方法的参数名productId一致(你之前用的asp-route-id对应id参数,但方法里是productId,所以要改成asp-route-productId)。

额外检查点

  • 打开浏览器控制台,确认页面加载时没有JavaScript错误,JS错误可能阻止按钮事件触发
  • 点击按钮后查看网络请求:检查是否有请求发出,以及请求URL是否和控制器路由匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:10:33