複雑なモデル セットを formdata に渡すのは難しい場合がありますが、jQuery シリアル化と MVC コントローラーを組み合わせて使用します。バインディングを使用すると、これを効果的に実現できます。
モデル セットを FormData に変換するには、フォームのシリアル化とともに jQuery の FormData オブジェクトを利用できます。モデルがフォーム タグ内のビューにバインドされている場合は、次を使用してモデルをシリアル化します。
var formdata = new FormData($('form').get(0));
これには、ファイル入力を含む、フォーム コントロールにバインドされたモデル プロパティが自動的に含まれます。
AJAX リクエストを使用してフォームデータをコントローラーに送信します:
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")', type: 'POST', data: formdata, processData: false, contentType: false, });
processData を設定することによりcontentType を false にすると、jQuery はフォームデータをそのまま送信できるようになります。
コントローラーでは、モデル セットにバインドする厳密に型指定されたメソッドを定義できます。 :
[HttpPost] public ActionResult YourActionName(YourModelType model) { }
MVC のモデル バインディング システムは、プロパティに基づいてフォームデータからモデルを自動的に設定します。 names.
フォームデータに追加の非モデル プロパティを含める必要がある場合は、単に次を使用します。
formdata.append('someProperty', 'SomeValue');
これにより、次のようにフォームデータを拡張できます。コントローラーでアクセスできるカスタム値。
以上がFormData 経由で複雑なモデル セットを MVC コントローラーに渡す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。