-1

大きなモデルを使用するアプリがあります。すべてのデータを収集するには、5 つのビュー ページが必要です。ビューページ間でモデルをセッションに保持しています。プロセスの途中で非アクティブになった後、セッションが終了することがあります。これが発生した場合、ユーザーをホームページに戻します。

ここに私のモデルの一部があります:

        private MemberRegistration MemberRegistration {
        get {
            if (HttpContext.Current.Session["RegisterModel_MemberRegistration"] == null)
            {
               return null;
               >>>> I want to go back the home page here <<<<
            }
            return (MemberRegistration)HttpContext.Current.Session["RegisterModel_MemberRegistration"];
        }
        set {
            HttpContext.Current.Session["RegisterModel_MemberRegistration"] = value;
        }
    }
    public string FirstName {
       get {
           return MemberRegistration.FirstName;
       }
       set {
           MemberRegistration.FirstName = value;
       }
    }

私の問題はこれです。ユーザーが [次へ] ボタンをクリックすると、モデル バインディングが開始されます。モデル バインディングは、[HTTPPost] コントローラー アクションの前に発生します。セッションの有効期限が切れている場合は、"return null" 行にヒットします。すぐにユーザーをホームページに送り返したい。

二次的な質問 - セッションを使用する以外にこれを行うためのより良い方法はありますか? (データベースに部分的な登録を保持することを提案しないでください。データベースに部分的なレコードを保持することから生じる問題よりも、セッションに保持することに関する問題の方が望ましいです。)

どうもありがとうございました!

4

1 に答える 1

0

代替手段: jQuery UI を使用してタブを作成します。5 つのビュー ページではなく、1 つのビュー ページで 5 つのタブを使用します。モデルをバラバラにする必要はありません。

http://jqueryui.com/demos/tabs/

于 2012-05-10T19:17:55.233 に答える