モデルがあります(例:List<string>
)。リストを構築する関数は非決定論的であり、要求の存続期間中に出力をコントローラとビューの両方で参照する必要があります。それは要求ごとであるため、静的でもシングルトンでもありません。ASP.NET MVCでコントローラとビューの間で共有データを処理するにはどうすればいいですか?
これは共通の構造であり、任意のビューまたはコントローラから参照できます。
私たちはビューからコントローラにアクセスすることはできません(原理的には同意します)ので、コントローラにそのコントローラを保持することはできません。現在、ViewData
辞書に保存していて、コントローラーまたはビューで初期化しています(コントローラーがそれを必要としない場合)。
この目的のためにViewData
を使用すると、最初にコントローラーが消費するように作成されていないため、理想的でない可能性があります。コントローラとビューの間で共通の要求ごとのデータを共有するためのより良い方法はありますか?そうでない場合は、ViewData
を付けます。
HttpContext.Items
辞書がありますが、この目的に合っているかどうかはわかりません。
"HttpContext.Items辞書がありますが、この目的に合っているかどうかわかりません。" - ぴったりだ。それを使用してください。 –
"最初に実行されるビューまたはコントローラで初期化します。"どのようにコントローラの前にビューを実行できますか? –
実際にはAFAIK ViewDataは* HttpContext.Current.Itemsです。そして、いつから「ViewDataがコントローラによって消費されるように作成されましたか」? * View *によって消費されます。ここでは、データはコントローラによって提供されます。 – RPM1984