ホームページ >ウェブフロントエンド >jsチュートリアル >ASP.NET MVC でコレクションを部分ビューに正常に渡し、データ送信を処理する方法

ASP.NET MVC でコレクションを部分ビューに正常に渡し、データ送信を処理する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-20 00:39:16920ブラウズ

How to Successfully Pass a Collection to a Partial View and Handle Data Submission in ASP.NET MVC?

Html.BeginCollectionItem ヘルパーを使用してコレクションを渡す Partial View

この質問では、オブジェクトのコレクションを Partial に渡す問題について説明します。データを表示し、コントローラーに正常に送信します。一見正しい実装のように見えますが、AddRecord() メソッドは失敗し、BeginCollectionItem ヘルパーは新しく追加されたフィールドに必要な隠しタグを生成していませんでした。

問題の分析

問題の根本原因は、コントローラーが予期するオブジェクト タイプと送信されるデータの不一致にあります。提供されたコードでは、ビュー モデルは CashRecipientVM に変更されましたが、コントローラー アクションは依然として CashRecipient 型のモデルを予期していました。

解決策

この問題を解決するには、次のようにします。次の手順が実行されました:

  1. 作成ViewModel (CashRecipientVM) の:

    • 編集するデータを表すために CashRecipientVM クラスが作成され、検証属性が含まれています。
  2. 部分図(_Recipient.cshtml):

    • 単一の CashRecipientVM インスタンスをレンダリングするために部分ビュー "_Recipient.cshtml" が作成されました。
    • プロパティをバインドするために BeginCollectionItem ヘルパーが使用されました複数の追加を可能にします
  3. Recipient() メソッド (コントローラー内):

    • Recipient() メソッドが新しいオブジェクトの Partial ViewResult を返すコントローラーCashRecipientVM.
  4. メイン GET メソッド (Create):

    • Create() GET メソッドが更新され、 CashRecipientVM の空のリスト
  5. メイン ビュー:

    • メイン ビューは、部分ビュー "_Recipient.cshtml" を使用するように更新されました。既存の受信者を表示し、新しい受信者を追加できるようにします
  6. JavaScript:

    • 新しい受信者の追加と既存の受信者の削除を処理するための Javascript 関数が追加されました。
    • jQuery と控えめなクライアント側検証を使用して、ユーザーの機能を強化しましたexperience.
  7. フォームの POST アクションの更新 (作成):

    • フォームの POST アクションは、 Create() アクション。これは CashRecipientVM のコレクションを期待するようになりました。

これらの変更を実装することで、アプリケーションは CashRecipientVM データを正常にバインドし、受信者の動的な追加と削除が可能になり、データをコントローラーに正しく送信できるようになりました。

以上がASP.NET MVC でコレクションを部分ビューに正常に渡し、データ送信を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。