2013-10-04 76 views
2

這是一個簡單的問題,只是簡單的代碼,我只是想詳細地確認我的理解。ASP.NET MVC刪除視圖 - 如何工作

標準生成的視圖用於ASP.NET MVC應用程序將具有端部像下面的刪除視圖 -

@using (Html.BeginForm()) { 
    @Html.AntiForgeryToken() 
    <p> 
     <input type="submit" value="Delete" /> | 
     @Html.ActionLink("Back to List", "Index") 
    </p> 
} 

控制器的方法是標準 -

public ActionResult Delete(int addressID) 
    { 
     Address address = db.Address.Find(addressID); 
     if (address == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(address); 
    } 

    [HttpPost, ActionName("Delete")] 
    [ValidateAntiForgeryToken] 
    public ActionResult DeleteConfirmed(int addressID) 
    { 
     Address address = db.Address.Find(addressID); 
     db.Address.Remove(address); 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 

的HTML這產生看起來像 -

<form action="/Address/Delete?AddressID=2" method="post">  
<input name="__RequestVerificationToken" type="hidden" value="...snip..." /> <p> 
     <input type="submit" value="Delete" /> | 
     <a href="/Address">Back to List</a> 
    </p> 
</form> 

正如您所看到的AddressID包含在表單中行動,但我沒有「做」任何事情放在那裏。我剛剛發送了包裝模型。

AddressID如何進入表單動作?

回答

2

MVC嚴重「基於約定」。

你做提供必要的信息,無論是刪除操作具有相同的ID參數:

public ActionResult Delete(int addressID)