2017-08-17 55 views
0

我在ASP.net MVC的形式,看起來像這樣:ASP.net MVC表單提交總是要求我們採取行動,而不是POST

<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方法時,都會導致頁面重新加載而不是提交。

我在做什麼錯?

回答

3

GET是未指定時的默認方法。指定POST方法:

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

謝謝你,無論出於何種原因,我是假設的職務是默認的方法。現在完美運作。 –

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> 
} 
相關問題