トラブルシューティングASP.NET MVCフォームアレイの提出jquery
この記事では、一般的な問題に対処しています。ASP.NETMVCとjQueryを使用してフォームアレイを送信すると、コントローラーの配列データにアクセスしようとする際のヌル参照例外が得られます。 問題は通常、フォームの配列要素が正しいモデルバインディングのために適切にインデックス付けされていない場合に発生します。シナリオには、サーバーに
を送信することが含まれます。 ソリューションでは、ループ内でフォームコントロールを生成する必要があり、各要素がインデクサーを使用して正しく命名されるようにします。 さらに、動的配列サイズに対応するために、サーバー側のモデルプロパティ()はIEnumerable<BatchProductViewModel>
でなければなりません。
BatchProducts
適切な配列処理を示す修正されたコードの例:IList<BatchProductViewModel>
コントローラーの
アクションメソッドは、<code class="language-csharp">@using (Html.BeginForm("Save", "ConnectBatchProduct", FormMethod.Post)) { // ... other form elements ... // Correctly indexed form elements for the array // This loop ensures each element in the array has a unique index // The indexer is crucial for proper model binding for (int i = 0; i < Model.BatchProducts.Count; i++) { @Html.HiddenFor(model => model.BatchProducts[i].ProductId) // Example property @Html.TextBoxFor(model => model.BatchProducts[i].ProductName) // Example property // ... other properties for BatchProductViewModel ... } // ... rest of the form ... <input type="submit" value="Save" /> }</code>
オブジェクトを正しく受信します。
Save
ConnectBatchProduct
動的配列管理(追加/削除)ConnectBatchProductViewModel
BatchProducts
アイテムの動的な追加と削除については、ヘルパーを使用するか、アレイ要素を効率的に管理するためにカスタムHTMLテンプレートを作成することを検討してください。 (これらの手法の詳細については、[関連するオンラインリソース/リンク - 括弧付きの情報を実際のリンクに置き換えてください
])BatchProductViewModel
に置き換えてください。)
以上がASP.NET MVCとjQueryを使用してフォームアレイを正常に投稿するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。