4

Razor.cshtmlページのセッション変数でファンキーな動作が発生しています。基本的に、一部のページでは、Session変数が設定されているかどうかを確認し、設定されていない場合は設定します。nullオブジェクト参照を取得し続けます。

これは、最終的にRazorがMVC用に設計されているためだと思います。MVCのライフサイクルについて少し読んだところ、セッションオブジェクトがライフサイクルの別のポイントに挿入され、asp.netwebformsと表示されたようです。そのため、自分のページで使用しようとすると、まだ利用できません。

したがって、私の質問は、Razorをベースにした単純なサイト(MVCではありませんが、そのように移動します)で、かなり頻繁にチェックされるセッション変数(「アクセスレベル」など)が設定されているかどうかをチェックする効果的な方法は何でしょうか。それは質問の一部になります。

質問のパート2は、これが悪い習慣である場合、このアプローチを置き換えるために何をすべきかということです。

ご意見ありがとうございます。

4

1 に答える 1

5

ASP.NET MVC 3のRazorビューページは、Razor構文を使用したASP.NETWebページとほぼ同じ方法で実行されます。そして、記録として、RazorはMVCではなくWebページ用に最初に開発されました。後で、両方のシナリオで「ファーストクラスの市民」であることを確認するためにRazorを作り直しました。

そのため、セッション状態は、Webページファイル、MVCコントローラー、またはMVCビュー内からでも、どこで使用しても問題なく機能するはずです(ただし、MVCビュー内からセッション状態を使用することは悪い習慣であるとほとんどの人が主張します) )。

于 2010-11-13T03:32:53.837 に答える