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

如何正确从View向Controller传递参数?editId始终为0的问题

ASP.NET Core 参数传递问题解决

问题原因

你当前的按钮写法中,asp-for与button的value属性组合不符合ASP.NET Core Tag Helper的预期,导致提交时editId参数无法正确传递到Controller。

解决方案

以下两种方法都能解决问题:

方法一:使用路由参数传递(推荐)

直接用asp-route-editId指定参数值,Tag Helper会自动生成包含参数的提交地址:

<button class="card-link" asp-action="Edit" type="submit" 
        asp-route-editId="@cc.Id">
    Id: @cc.Id
</button>

方法二:通过表单隐藏域传递

将参数放在隐藏输入框中,按钮仅负责触发表单提交:

<form asp-action="Edit" method="post">
    <input type="hidden" name="editId" value="@cc.Id" />
    <button class="card-link" type="submit">
        Id: @cc.Id
    </button>
</form>

补充说明

  • Controller的[HttpPost]方法接收参数时,要么通过路由参数(对应asp-route-*),要么通过表单字段(对应input元素),按钮的value属性默认不会被作为表单参数提交。
  • 两种方法都能保证@cc.Id的值正确传递到Controller的editId参数中,避免出现始终为0的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:22:35