ホームページ > ウェブフロントエンド > jsチュートリアル > FormData 経由で複雑なモデル セットを MVC コントローラーに渡す方法は?

FormData 経由で複雑なモデル セットを MVC コントローラーに渡す方法は?

Mary-Kate Olsen
リリース: 2025-01-01 01:00:09
オリジナル
354 人が閲覧しました

How to Pass a Complex Model Set via FormData to an MVC Controller?

モデル セットを FormData に変換し、MVC で取得する

複雑なモデル セットを formdata に渡すのは難しい場合がありますが、jQuery シリアル化と MVC コントローラーを組み合わせて使用​​します。バインディングを使用すると、これを効果的に実現できます。

JavaScriptシリアル化

モデル セットを 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 の拡張

フォームデータに追加の非モデル プロパティを含める必要がある場合は、単に次を使用します。

formdata.append('someProperty', 'SomeValue');
ログイン後にコピー

これにより、次のようにフォームデータを拡張できます。コントローラーでアクセスできるカスタム値。

以上がFormData 経由で複雑なモデル セットを MVC コントローラーに渡す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート