使用Html.BeginCollectionItem 將集合傳遞給部分視圖
建立允許使用者新增模型的多個實例的表單時,通常需要為每個實例渲染部分視圖。 ASP.NET MVC 提供了 Html.BeginCollectionItem 幫助程式來促進此過程。
BeginCollectionItem 幫助程式建立一個表格行,其中包含模型目前實例的表單欄位。提交表單時,輸入到這些欄位中的資料將綁定到模型物件的相應屬性。
要使用 BeginCollectionItem,您必須先建立一個代表單一實例的表單欄位的分部視圖模型的。例如,請考慮以下名為_Recipient.cshtml 的部分視圖:
@model CashRecipientVM <div>
此部分視圖定義了一個帶有兩個文字方塊(用於收件者和金額)和一個刪除按鈕的表單。 BeginCollectionItem 幫助器確保模型的每個實例都有自己的一組表單欄位。
在主視圖中,您可以使用 BeginCollectionItem 幫助器將這些部分視圖的集合新增至表單。例如:
@model IEnumerable<CashRecipientVM> @using (Html.BeginForm()) { <div>
此程式碼建立一個包含 CashRecipientVM 物件清單的表單。 BeginCollectionItem 幫助器用於呈現清單中每個物件的部分視圖。
該表單包含一個「新增」按鈕,允許使用者新增模型的其他實例。當您按一下「新增」按鈕時,將向控制器發出 AJAX 請求以擷取另一個部分視圖。然後,檢索到的部分視圖將會新增到表單中。
提交表單時,輸入到表單欄位中的資料將綁定到 CashRecipientVM 物件的對應屬性。然後控制器可以處理這些物件並將它們保存到資料庫中。
以上是如何使用 Html.BeginCollectionItem 管理 ASP.NET MVC 部分視圖中的多個模型實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!