【问题标题】:How to use different submit buttons to send different parameter to action in MVC?如何使用不同的提交按钮将不同的参数发送到 MVC 中的操作?
【发布时间】:2018-09-03 20:11:22
【问题描述】:

我有 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 的参数为空!

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

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

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

【问题讨论】:

标签: c# asp.net-mvc razor


【解决方案1】:

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

  <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

【讨论】:

    猜你喜欢
    • 2014-02-02
    • 2016-06-19
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    相关资源
    最近更新 更多