如何在单个表单中通过两个提交按钮传递不同数据
解决表单双提交按钮传递数据到服务器的问题
你的核心问题是当前HTML表单的按钮配置无法正确将点击状态传递到后端,以下是修正方案:
修正HTML表单配置
当前代码存在两个关键问题:
- 表单
action里的new{name}是路由参数,并非表单提交的参数,会导致后端接收到固定的路由值,而非点击的按钮信息。 - 两个提交按钮的
name属性不一致,后端无法通过统一参数接收点击状态。
修正后的HTML代码:
<form action="@Url.Action("Create")" method="post"> <input type="submit" class="button" name="name" value="Draft" /> <input type="submit" class="button" name="name" value="Publish" /> </form>
说明:
- 移除
action中的new{name},避免路由参数干扰表单提交数据。 - 将两个按钮的
name统一设为name(与后端参数名对应),value分别设为Draft和Publish。点击对应按钮时,浏览器会自动将name=Draft或name=Publish作为表单数据提交到服务器。
后端代码验证
你的C#后端代码无需修改,参数string name会自动绑定表单提交的name参数值,现有逻辑可以正常区分草稿和发布状态。
内容的提问来源于stack exchange,提问作者user20654632
相关产品推荐
相关产品推荐

