[Mvc] Binding List Data

在送出表單的時候,很常會遇到需要將整個列表資料送回Post Action的情況,今天來介紹一下要怎麼綁定List Data。

實作:

其實綁List不難,大概幾個重點:

(1)每一筆資料都要建一個prefix(前綴),並且給一個index vlaue (如圖一第30行)

(2)這個前綴的名稱(這裡的範例是給"datas"),是根據Action 要接的參數name給的(如圖二第26行)

(3)要綁定的model內容 name={前綴}+"."+{屬性名稱},如(圖三,我要綁 TestModel 的屬性"A"的值回來,name的綁定方法如圖一的31行)

(圖一)

(圖二)

(圖三)

1.View 範例

 var testData = new List<TestModel>()
    {
        new TestModel{A="1"},
        new TestModel{A="2"},
        new TestModel{A="3"},
    };
    foreach (var item in testData)
    {
        var uuid = Guid.NewGuid();
        var prefix = $"datas[{uuid}]";
        <input name="datas.index" value="@(uuid)" hidden />
        <input name="@($"{prefix}.{nameof(TestModel.A)}")" value="@(item.A)" hidden />
    }

2.結果



留言

這個網誌中的熱門文章

[Visual Studio]位於網際網路或是限制區域上 或是檔案上標有 web 字樣 所以無法處理該檔案。若希望處理這些檔案 請移除 web 字樣。

[IIS] IIS執行時,發生拒絕存取路徑 問題

[SourceTree]修改使用者帳號密碼