1

私は ASP MVC アプリケーションを使用しており、あるコントローラーでセッション変数を作成し、後で別のコントローラーでそのセッション変数にアクセスしようとしています。これに関する PHP の記事を見つけましたが、ASP MVC の解決策を見つけるのに苦労しています。

私のコードは現在、アカウント番号を更新するために 1 つのコントローラーに ajax 呼び出しを行います。

                $.ajax({
                    type: "PUT",
                    url: defender.techWebBaseUrl + "jobsinprogress/storenewmonitoringacctnumber/",
                    data: { acctNum: $("#newAcctNumber").val() }
                });

これはコントローラーで実行されます。

  public void StoreNewMonitoringAcctNumber(string acctNum)
    {
        Session["MAN"] = acctNum;
    }

これにより、セッション変数が正常に作成されます。ワークフローの後半で、完全に別の/異なるコントローラーで、この同じ変数にアクセスしようとします。

.Configure(job, type, "sent", licenseStamp, EmployeeSignatureKey, Session["MAN"].ToString());

ただし、そのセッション変数が NULL になるたびに。ASP.NET Web フォームと同じルールがここでは適用されないため、MVC でセッション変数を永続化する方法を理解しようとしています。また、セッション変数を保存してからセッション変数にアクセスしようとするこれらのアクションは、異なるコントローラーに存在する必要があるため、その変数を永続化する方法を絶対に見つける必要があります。

アドバイスをいただければ幸いです。

4

1 に答える 1

3

MVC コンテキストで webforms の考え方を使用しようとしていますが、まったく機能しません...

viewstate/session を使用して Web フォームで行うのと同じ方法で、MVC で変数を「永続化」する必要があることはめったにありません。MVC では通常、厳密に型指定されたビューを使用してモデルのインスタンスをビューに渡し、そこから変数にアクセスします。

まれに、TempData/ViewData/Session を使用できますが、実際にはお勧めできません。

MVC と、厳密に型指定されたビューの使用方法について詳しく読むことをお勧めします。このリンクは良いスタートです。

于 2013-10-08T21:47:53.177 に答える