ASP.net MVC表单提交始终调用GET操作而不是POST

时间:2017-08-17 13:49:11

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我在ASP.net MVC中有一个表格,如下所示:

<div class="x_content">

    <form id="elementEditForm" class="form-horizontal form-label-left">

        <input type="hidden" name="returnUrl" value="@ViewBag.returnUrl" />


        ... my form fields....

        <div class="form-group">
            <div class="col-md-9 col-md-offset-3">
                <button type="submit" form="elementEditForm" class="btn btn-success">Submit</button>
            </div>
        </div>
    </form>
</div>

在控制器中我有:

[HttpGet]
public ActionResult Edit(string id, string returnUrl = null)
{
    var e = getEditModel(id);
    return View("GenericElementEdittView", e);
}

[HttpPost]
public ActionResult Edit(string id, object evm, string returnUrl = null)
{
    log.Info(evm);

    return View();
}

我的问题是,当我单击按钮提交表单时,不会调用HttpPost方法。相反,每次调用HttpGet方法,导致页面只是重新加载而不是提交。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

如果未指定,则

GET是默认方法。指定POST方法:

<form id="elementEditForm" class="form-horizontal form-label-left" method="post">

答案 1 :(得分:0)

另一种方法。我更喜欢将HTML Helper用于表单,因为它可以直观地了解表单应该做什么。

@using (Html.BeginForm("Edit","<ControllerName>",FormMethod.Post, new {@id="elementEditForm", @class="form-horizontal form-label-left"}))
{
    <input type="hidden" name="returnUrl" value="@ViewBag.returnUrl" />


    ... my form fields....

    <div class="form-group">
        <div class="col-md-9 col-md-offset-3">
            <button type="submit" form="elementEditForm" class="btn btn-success">Submit</button>
        </div>
    </div>
}