首頁 > 後端開發 > C++ > 如何正確發布從ASP.NET MVC到IEnumerable模型的表單陣列?

如何正確發布從ASP.NET MVC到IEnumerable模型的表單陣列?

Linda Hamilton
發布: 2025-02-02 04:01:09
原創
378 人瀏覽過

在ASP.NET MVC應用程序中,How to Properly POST Form Arrays from ASP.NET MVC to an IEnumerable Model?
> >

>>>需要將包含輸入元素的動態數組的形式提交為iEnumerable&lt ; batchProductViewModel>模型屬性。但是,當使用formCollection用作方法參數時,操作方法無法用form的數據綁定模型。

解決方案:
  • ,而不是使用formCollection,操作方法必須接受正確的模型類型的實例ConnectBatchProductViewModel,作為其參數。要生成一個形式,該表單將值形式為模型中的iEnumerable屬性,請按照以下步驟:
>使用for for for loop來生成集合中每個元素的控件。每個控件都必須使用索引器命名才能正確綁定到模型。

>>在每個動態添加的行中添加一個隱藏的輸入元素,以允許從視圖刪除項目。 >將操作方法​​更新為將模型接收為參數。

>示例代碼:

@for(int i = 0; i < Model.BatchProducts.Count; i++)
{
  <tr>
    <td>@Html.TextBoxFor(m => m.BatchProducts[i].Quantity)</td>
    <td>@Html.TextBoxFor(m => m.BatchProducts[i].BatchName)</td>
    <td>
      <input type="hidden" name="BatchProducts.Index" value="@i" />
      <a class="deleteRow"></a>
    </td>
  </tr>
}
登入後複製

表單代碼:

public ActionResult Save(ConnectBatchProductViewModel model)
{
  // Model binding will populate the BatchProducts property with data from the form.
  ....
}
登入後複製

動作方法:

<div>
登入後複製

$("#addrow").click(function() {
  var index = (new Date()).getTime(); // unique indexer
  var clone = $('#NewBatchProduct').clone(); // clone the BatchProducts item
  // Update the index of the clone
  clone.html($(clone).html().replace(/\[#\]/g, '[' + index + ']'));
  clone.html($(clone).html().replace(/"%"/g, '"' + index  + '"'));
  $("table.order-list").append(clone.html());
});
登入後複製
>動態添加和刪除項目: 啟用動態添加和刪除項目,使用beginCollectionitem helper或一個HTML模板。動態添加新項目的模板是:> 添加一個新批處理產品的腳本將是:

以上是如何正確發布從ASP.NET MVC到IEnumerable模型的表單陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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