2009-01-06 46 views
2

如何從我的視圖中啓動刪除操作?我應該如何處理ASP.NET MVC中的刪除情況

創建一種新形式的標籤爲每個實體只是看起來不正確:-)

<% foreach (var subscriber in group.Subscribers) { %> 
     <tr> 
      <td><%= subscriber.Email %></td> 
      <td><%= Html.ActionLink("[edit]", "edit", "subscriber", new {id=subscriber.SubscriberId}, null) %></td> 
      <td> 
       <form id="delete-subscriber-form" method="post" action="<%= Url.Action("delete", "subscriber", new { @subscriberId = subscriber.SubscriberId }) %>"> 
        <input type="submit" value="Delete" /> 
       </form> 
      </td> 
     </tr> 
     <% } %> 

那你怎麼辦呢?

回答

5

我通常在項目的一側使用複選框。然後,我可以有對所選項目應用動作的動作鏈接(按鈕,任何)(如刪除)。在

$(".element").each(function(){ 
     $(this).data("id","the id of the element in db") 
    }); 

    $(".element").toggle(function(){ 
     $(this).addClass("forDel"); 
    },function(){ 
    $(this).removeClass("forDel"); 
    }); 

然後:

+0

不知道爲什麼我沒有想到這一點。 不錯,簡單 - 謝謝:) – 2011-02-10 05:19:52

0

你可以使用CSS和Javascript,添加「forDel」 CSS類所有要刪除elments,如果你打算使用jquery你可以做這樣的按下刪除按鈕:

var idsForDel; 
    $(".forDel").each(function(){ 
    idsForDel = $(this).data("id"); + ";"; 
}) 

可以通過idsForDel到控制器......它在服務器端分開。

+0

個人我覺得用MVC這種方式使用JavaScript是一種破解,MVC允許每頁有多種形式(與經典的asp.net不同)是一個理由。 – Ash 2009-01-06 14:22:22

0

這取決於情況,如果您正在執行CRUD操作,通常每個操作(刪除,編輯,新建)都會使用一個<form>標記。但是,如果您正在顯示一個列表,並且希望只需單擊一次即可「多次刪除」項目,那麼您需要從一個不同的角度來處理它,因爲您需要將所有必需的信息封裝到一個表單中。

編輯

有過再看看你的帖子上面我注意到您提供一個「刪除按鈕」對列表中的每個元素。對於這樣的原子動作(即用戶希望在點擊按鈕後會發生某些事情),我肯定會爲每個項目使用一種形式。

我上面寫的東西仍然適用...

相關問題