【问题标题】:HTML button can't use a different actionHTML 按钮不能使用不同的操作
【发布时间】:2017-11-30 00:41:30
【问题描述】:

我正在尝试创建一个将使用不同形式的操作的按钮。在Edit 页面中,我希望用户可以选择单击按钮来运行Delete 操作。这样我就可以消除对Delete 视图的需求。

这是我的按钮:

<input type="submit" id="yesBtn" value="Yes" class="btn btn-default" style="float:left; background-color:Green; color: white" /> 

我尝试了一些方法:

@using (Html.BeginForm("Delete", "GroupsController", routeValues: new { id = Model.GroupId }, method: FormMethod.Post)){
<input type="submit" id="yesBtn" value="Yes" class="btn btn-default" style="float:left; background-color:green; color: white" />}

这使用表单的默认Edit 动作;用

包装

&lt;form action="~/Views/Groups/Delete.cshtml" method="post"&gt;&lt;/form&gt;

也不起作用,我还尝试了onclick 事件,但没有成功。
我认为 BeginForm 由于某种原因没有被识别。

这是我的操作代码,我正在尝试传入Model.GroupId

// POST: AspNetGroups/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
    AspNetGroup aspNetGroup = db.AspNetGroups.Find(id);
    db.AspNetGroups.Remove(aspNetGroup);
    db.SaveChanges();
    return RedirectToAction("Index");
}

这是我观点的相关部分:

@model ContactManager.Models.AspNetGroup
...
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    <div class="form-horizontal">
    ...
        <div id="myModal" class="modal">
            <div class="modal-content">
                <div class="modal-header">
                    <span class="close">&times;</span>
                    <h2>Delete Group</h2>
                </div>
                <div class="modal-body">
                    <p>You are about to delete group placeholder.</p>
                    <p>Are you sure you want to delete it?</p>
                </div>
                <div class="modal-footer">
                    <form action="~/Views/Groups/Delete.cshtml" method="post">
                        <input type="submit" id="yesBtn" value="Yes" class="btn btn-default" style="float:left; background-color:green; color: white" />
                    </form>
                    <input type="button" id="noBtn" value="No" class="btn btn-default" style="float:left; background-color:red; color: white" />
                </div>
            </div>
        </div>
        ...
    </div>
}

【问题讨论】:

  • 您确定控制器名称是 GroupsController 吗? 'controller' 通常被省略。
  • @Nico 我认为你是对的!但它并没有解决我的问题(Delete 按钮在更改后仍在使用Edit 操作)。感谢您的帮助。

标签: html asp.net-mvc forms asp.net-mvc-5


【解决方案1】:

在 html 中使用 form inside form 是无效的。通过单击“删除”按钮,您提交由 Html.BeginForm() 助手呈现的外部表单。所以你应该把删除按钮做成一个链接,或者把这个内部形式放在外部形式之外。

【讨论】:

  • 非常感谢,经过一番研究,我开始认为情况也是如此,但您证实了这一点。感谢帮助,尤其是建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
  • 2017-09-01
  • 2014-05-17
相关资源
最近更新 更多