2017-06-27 23 views
0

我試圖創建一個按鈕,它將使用不同形式的動作。從Edit頁面,我希望用戶可以選擇單擊按鈕來運行Delete操作。這樣我可以刪除對Delete視圖的需求。HTML按鈕不能使用不同的動作

這裏是我的按鈕:

<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行動;與

<form action="~/Views/Groups/Delete.cshtml" method="post"></form>

包裝也不管用,我也嘗試過的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> 
} 
+0

確定控制器名稱是GroupsController? '控制器'通常被省略。 – Nico

+0

@Nico我認爲你是對的!但是它並沒有解決我的問題(更改後,'Delete'按鈕仍然使用'Edit'操作)。謝謝你的幫助。 –

回答

0

這不是有效使用內部表格形式在html中。通過點擊'刪除'按鈕,您可以提交由Html.BeginForm()助手呈現的外部表單。因此,您應該將刪除按鈕作爲鏈接,或者將外部窗體放在外部窗體之外。

+0

非常感謝,經過一番調查,我開始認爲情況確實如此,但是您確認了這一點。感謝幫助,特別是建議。 –