首頁 > 後端開發 > C++ > 如何使用jQuery在ASP.NET MVC表單中動態創建和管理數組?

如何使用jQuery在ASP.NET MVC表單中動態創建和管理數組?

Barbara Streisand
發布: 2025-02-02 04:21:09
原創
848 人瀏覽過

How to Dynamically Create and Manage Arrays in ASP.NET MVC Forms using jQuery?

在ASP.NET MVC中使用jQuery動態創建數組

在Web開發中,通常需要允許用戶動態添加或刪除表單元素,例如文本框或下拉列表。這在為複雜數據結構(如數組或列表)創建表單時尤其有用。

問題

當使用帶有C#的ASP.NET MVC時,使用JavaScript動態創建表單數組字段可能會帶來挑戰。默認情況下,MVC中的FormCollection參數綁定只支持綁定到簡單類型,如字符串或數字。但是,要綁定到數組或列表,需要一個表示集合的模型。

解決方案:動態生成表單控件

要將表單數組數據綁定到模型,必須使用Razor語法動態生成表單控件,確保它們具有適當的名稱,以便可以正確綁定數據。這涉及使用for循環迭代集合中的項目,生成名稱為“BatchProducts[0].Quantity”之類的輸入字段。

更新模型

生成控件後,下一步是更新操作方法以接收與表單結構匹配的模型。需要將參數更新為表示數組或列表的強類型對象,例如“IList”。

動態添加和刪除項目

如果要啟用用戶動態添加或刪除數組中的元素,可以使用BeginCollectionItem輔助函數或HTML模板。 BeginCollectionItem輔助函數允許在集合中的特定索引處插入模板,該模板可用於呈現新的表單行。同樣,HTML模板提供了一種使用JavaScript動態添加新元素的方法。

使用BeginCollectionItem輔助函數的示例

對於集合中的每個元素,使用BeginCollectionItem輔助函數生成一個表單行,其中包含每個屬性的輸入字段。包含一個隱藏的輸入字段,其中包含用於刪除目的的元素索引。

<code class="language-csharp">@using (Html.BeginForm("Save", "ConnectBatchProduct", FormMethod.Post))
{
  @Html.HiddenFor(model => model.Product.Id)

  <table class="order-list">
    @for (int i = 0; i < Model.BatchProducts.Count; i++)
    {
      @Html.BeginCollectionItem("BatchProducts")
      <tr>
        <td>@Html.TextBoxFor(m => m.BatchProducts[i].Quantity)</td>
        <td>@Html.TextBoxFor(m => m.BatchProducts[i].BatchName)</td>
        <td>
          @Html.HiddenFor(m => m.BatchProducts[i].Index, new { Value = i })
          <a class="deleteRow"></a>
        </td>
      </tr>
      @Html.EndCollectionItem()
    }
  </table>

}</code>
登入後複製

使用HTML模板的示例

為集合中的行創建一個模板,並將其最初隱藏。然後,使用JavaScript克隆和修改模板,更新索引值,並將其附加到表中。

<code class="language-html"><div><p>通过实现这些技术,您可以创建具有动态数组的表单,使用户能够添加或删除元素并将数据发布回控制器进行处理。</p></div></code>
登入後複製

以上是如何使用jQuery在ASP.NET MVC表單中動態創建和管理數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板