常にASP.NET MVCのためのウィンザー構成で一過性のライフスタイルをコントローラべきでしょうか?
-
22-09-2019 - |
質問
私は、私が選択した値に、私は、フォームを提出した最初の時間をポストバックでしょう私の見解ではHtml.DropDownListが、後続の各ポストバック初期ポストバックからだろう唯一のポストのデータを持っていた問題に走りました。私は問題を修正城ウィンザー、のための私のコントローラを構成し、もちろん新しいコントローラは、リクエストごとにインスタンス化されていたので、ポストバックが長くかかり作った構成要素にライフスタイル=「一過性」を追加私はそう。上記の情報を考えると、どのような洞察力、提案は、またはソリューションは、コントローラのライフスタイルについての私の元の質問を判断するのに役立つかもしれませんか?すべてのヘルプとサポートしてくれてありがとう!
解決
MVCコントローラが一時的なものです。それについて考える、これはいくつかの理由のために理にかなっています。まず、単一のインスタンスがサービス複数の要求に使用され、複数の要求が同時に同じコントローラを打つことが起こるならば、あなたはいくつかのかなり奇妙な競合状態を経験するつもりなら。第二には、HTTPは、その性質上のステートレスであり、かつ要求が互いに独立して存在します。これは、コントローラの過渡的なライフスタイルに反映されます。
他のヒント
過渡、はい、しかし興味のために、なぜ代わりに過渡のPerWebRequestありませんか?私はPerWebRequestライフスタイルを使用するブログのカップルを見てきましたし、私はなぜない理由を考えることはできません。任意の答え?
私はディオンに同意します。この同じ質問に対する解決策を探してここに上陸しました。 PerWebRequest
がより適切であるように思えます。
あなたはMVCとWEBAPIにあなたのコンテナを統合する方法に応じて、あなたのコントローラがもう使用されていないときウィンザーは、依存関係を解放するように指示されない場合があります。
あなたはPerWebRequest
に設定すると、それはが自動的にあなたのコントローラ、およびそのすべての依存関係を解放する場合は、要求が終了の