C# MVC を使用しています。以前に、必要なすべてのデータが 1 つのフォームにあるフォームを作成しました。ユーザーがデータを入力すると、コントローラに渡され、データがデータベース テーブルに挿入されます。
フィールドが 3 つの異なるページにある状況をどのように処理しますか。3ページで、提出したい。データはどのように存在しますか?
また、セッション変数は、多くのページで共有されるデータに使用できますか?
C# MVC を使用しています。以前に、必要なすべてのデータが 1 つのフォームにあるフォームを作成しました。ユーザーがデータを入力すると、コントローラに渡され、データがデータベース テーブルに挿入されます。
フィールドが 3 つの異なるページにある状況をどのように処理しますか。3ページで、提出したい。データはどのように存在しますか?
また、セッション変数は、多くのページで共有されるデータに使用できますか?
3 つのページすべてのプロパティを持つ 1 つの ViewModel を吐き出す 1 つの部分ビューを作成し、jQuery ウィザード プラグインを使用して (または、独自のプラグインを作成している可能性があります)、DOM を単純に操作して、各ページを NEXT として表示/非表示にすることができます。 /PREVIOUS ボタンをクリックします。すべてが 1 つの FORM の一部であることに変わりはありません。次に、submit を押すと、シリアル化された JSON を含む $.ajax() POST を使用して、コントローラ メソッドにポスト バックされます。
ウィザードの 3 つのページすべてでビュー モデルを共有した場合、ページに HiddenFor フィールドを展開して、ウィザードのそのページに表示されない情報を保持できます。
これにより、ウィザード全体で他のフォームに入力されたデータ フィールドが維持され、情報を保存するためにセッションに依存しません。
ウィザード スタイルのワークフローを実行している場合は、各ページに対してのみViewModel
使用でき、ユーザーが各ページに進むにつれて、それぞれViewModel
をSession
変数に格納できます。次に、完了時にすべてのモデルを取得してSession
、値を完成したフォームの状態に集約できます。
もう 1 つの方法はPOST
、ページ データをデータ ストアに永続化する呼び出しサービスごとに、ユーザーが各ページをナビゲートするときに、何らかのサービスを介してエンティティが取り込まれ、データベースに格納されるようにすることです。
別のビューを使用するか、タブ付きの UI を備えた 1 つのビューを使用し、代わりに各タブのコンテンツとして 3 つの部分ビューを使用することができます。
セッションを使用できますが、20 分の制限時間内にコンテンツを完了できるようにする必要があります。ポストバックが発生する限り、その制限はリセットされます。