3

ページが出力キャッシュされると、asp:net 置換制御メソッドのコンテキスト パラメーターに現在のセッションが欠落しているように見えます。

ajaxを介して置換コントロールのコンテンツを取得するか、他の方法を使用してセッション内にあるデータ(データベースなど)を保存する以外に、他にできることはありますか?

代替制御でネイティブ asp.net セッションを使用する回避策はありますか?

<asp:Substitution  ID="myid" MethodName="method1"></asp:Substitution>

public static string method1(HttpContext context) <--  [1]

[1] --- ページがキャッシュされた後、conext.session が null になる

4

2 に答える 2

1

同ブログより。

re: ヒント/コツ: ASP.NET 2.0 出力キャッシュ置換機能を使用して「ドーナツ キャッシュ」を実装する

2007 年 2 月 23 日金曜日 午前 1 時 30 分 by ScottGu

こんにちはスコット、

表示されているエラーは、セッション オブジェクトにアクセスしようとしているためだと思います。

残念ながら、このシナリオではセッションにアクセスできないと思います。セッション オブジェクトが読み込まれないためです (ページが作成されないため)。

ごめん!

スコット

于 2009-11-11T15:23:33.150 に答える
0

値にアクセスする前に context.Session が null でないことを確認するとどうなりますか? Context.Session は、ユーザーが行う最初の要求に対して設定されていないため、Substitution コントロールを使用するときではなく、以前にセッションの問題が発生しました。標準のページのライフサイクルに収まらないため、関連する問題が発生している可能性があります。

ScottGu によると、すべてが利用できるはずです。

この静的メソッドには、実行時に、標準の ASP.NET 要求、応答、ユーザー、サーバー、セッション、アプリケーションの組み込み関数を含む HttpContext オブジェクトが渡されます。

ヒント/コツ: ASP.NET 2.0 出力キャッシュ置換機能を使用して「ドーナツ キャッシュ」を実装する

于 2009-11-11T10:03:03.260 に答える