Asp.net-Mvc

將選中的複選框發佈到控制器操作,而不使用 Html.CheckboxList 等 HTML 助手

  • April 11, 2018

我有一個項目列表,我想刪除在復選框列表中選中的項目。

我不能使用類似的東西,CheckboxList因為我Grid.Mvc用來顯示我的線條。這就是為什麼我在每一行中用column.add("<input type="checkbox".....>);.

每個複選框都有自己的 ID:

<input type="checkbox" id="3">
<input type="checkbox" id="4">...

我想知道如何將所有選中的複選框 ID 傳遞給控制器(從那裡我將執行刪除操作)。如何通過按一下按鈕將一組已檢查的 ID 從我的表單發佈到我的控制器操作?

生成的 HTML 範例:

<label><input type="checkbox" name="deletedItems" value="3"> Some label for 3</label>
<label><input type="checkbox" name="deletedItems" value="4"> Some label for 4</label>
...
<button type="submit">Submit</submit>

控制器動作:

[HttpPost]
public ActionResult MyAction(int[] deletedItems)
{
   // deletedItems contains all values that were checked
   // when the submit button was clicked. Here you can
   // loop through the array of IDs and delete by ID.
   ...
}

請注意,複選框沒有id屬性。它不用於模型綁定。相反,它有一個name名為“deletedItems”的屬性,該屬性與MyAction控制器操作的參數名稱相匹配,這就是模型綁定時使用的屬性。選中復選框的value屬性將用於deletedItems填充int[].

引用自:https://stackoverflow.com/questions/25038736