0

私はこのモデルを持っています

    public class ItemClassification
    {
         public int ItemID {get; set;}
         public string ItemName {get; set;}
    }

そして私はこのフォームを持っています

   <form method="POST" action="/Home/UpdateItemClassifications">
        <table>
             <tr>
                  <th>Item ID</th>
                  <th>Item Name</th>
             </tr>
             <tr>
                  <td>
                       <input name="ItemClassification[0].ItemID" value="1"/>
                  </td>
                  <td>
                       <input name="ItemClassification[0].ItemName" value="Item One"/>
                  </td>
             </tr>
             <tr>
                  <td>
                       <input name="ItemClassification[1].ItemID" value="2"/>
                  </td>
                  <td>
                       <input name="ItemClassification[1].ItemName" value="Item Two"/>
                  </td>
             </tr>
             <tr>
                  <td>
                       <input name="ItemClassification[2].ItemID" value="3"/>
                  </td>
                  <td>
                       <input name="ItemClassification[2].ItemName" value="Item Three"/>
                  </td>
             </tr>
        </table>
   </form>

そして、これらの値をこのコントローラーアクションにバインドして、それらをループし、データベースで更新しようとしています。

    [HttpPost]
    public ActionResult UpdateItemClassifications(List<ItemClassification> UpdatedClassifications)
    {
         //save logic here..
    }

何らかの理由で、投稿されたフォームの値がItemClassificationモデルにバインドされていません。任意の助けや指示をいただければ幸いです。このフォームを1セットの値のみで投稿してみましたが、コントローラーから「List <>」を削除すると、値が正しくマッピングされました。

4

1 に答える 1

0

[0].ItemID の前に「ItemClassification」は必要ないことがわかりました。Sundeepの回答に感謝します。あなたが参照したハッキン​​グされた記事を確認する必要があるかもしれません。これに JavaScript の削除機能を追加している可能性があり、間違いなく私のインデックス作成が変更されるからです。

于 2013-03-23T19:13:08.547 に答える