2015-08-16 60 views
0

我有一個Razor視圖這樣:按鈕,控制器無法看到按鈕值

@using (Html.BeginForm("RemoveContact", "MyContacts")) 
{ 
    <table> 
     @foreach (MyProject.Models.MyContacts.ExistingContact ec in Model.ExistingContacts) 
     { 
     <tr> 
      <td>@ec.FirstName</td> 
      <td>@ec.LastName</td> 
      <td>@ec.Relationship</td> 
      <td>@ec.Phone</td> 
      <td>@ec.Email</td> 
      <td> 
       <button type="submit" name="Delete" id="Delete" value="@ec.ContactGuid">Delete</button> 
      </td> 
     </tr> 
      } 
    </table> 
} 

基本上我有一個聯繫人列表,我希望把旁邊的按鈕給每個允許他們刪除的人。在同一頁面上是一個允許他們添加新聯繫人的窗體(工作正常)。

但在我的控制器中,被調用的字符串參數顯示爲空。我期望它是按鈕的值屬性(@ ec.ContactGuid)。

[HttpPost] 
public ActionResult RemoveContact(String contactGuid) 
{ 
    return Redirect("/MyContacts/"); 
} 

1)有沒有辦法解決這個問題?

2)有沒有更好的範例我完全失蹤?我是一名新的MVC開發人員。

+1

您的按鈕名稱是Delete,而不是contactGuid。 –

+0

@WiktorZychla甚至不知道按鈕和方法參數之間的聯繫,謝謝你,很好。 – radpin

回答

3

傳入的參數名稱必須匹配的名稱,這樣以來你的名字刪除:

<button type="submit" name="Delete" .. 

刪除必須是該參數,而不是值的名稱;在這種情況下,請執行以下操作:

[HttpPost] 
public ActionResult RemoveContact(String Delete) 

變量Delete在點擊時將具有值@ec.ContactGuid