如何使用不同的提交按钮在MVC中发送不同的参数?

时间:2018-03-25 17:18:31

标签: c# asp.net-mvc razor

我有2个表单,每个表单有2个提交按钮。

我的一个表格是"创建"。在这种形式中,我不使用hiddenfor对象和2提交按钮,如下所示:

 <button type="submit" class="btn btn-success btn-sm" name="continueEditing" value="false">
      <i class="fa fa-save"></i>
      @GlobalRes.Save
 </button>
 <button type="submit" class="btn btn-success btn-sm" name="continueEditing" value="true">
      <i class="fa fa-save"></i>
      @GlobalRes.SaveAndContinue
 </button>

在服务器端,我的动作签名是这样的:

[HttpPost]
public ActionResult Create(CategoryCreateVm model, bool continueEditing)
{//}

一切正常,但问题是当我尝试在编辑操作中使用相同的脚本和相同的代码时,我遇到错误,其中名为continueEditing的参数为null!

CreateEdit视图之间的唯一区别是我在Edit视图中使用了隐藏的对象:

@Html.HiddenFor(x => x.Id)

这个表单有什么问题,除了参数使用提交按钮,我无法发送额外的隐藏值?注意事项是我必须对两个提交都使用相同的操作。

1 个答案:

答案 0 :(得分:0)

您必须为提交的每个按钮添加不同的名称。

  <button type="submit" class="btn btn-success btn-sm" name="continueNotEditing" value="false">
  <i class="fa fa-save"></i>
  @GlobalRes.Save

<button type="submit" class="btn btn-success btn-sm" name="continueEditing" value="true">
  <i class="fa fa-save"></i>
  @GlobalRes.SaveAndContinue