PostBack中にViewBag関数のポインタ値が失われるという問題があります。ポストバック後にViewBag値を保持する
私のサイトは、私がViewBag関数ポインタを利用して、私の顧客の状況を示すバナー(部分図)を持つ:
ViewBag.CustomerStatus= new Func<id, string>(GetCustomerStatus);
(idは私の顧客のIDで、それは、ステータスを返される文字列を返した場合は)
私がバナー部分ビューを利用する他のページに行くとき、私はCustomerStatus ViewBag変数を失います。私はViewBagsが「ページごとに」のみ利用可能であることを知っていますが、冗長ではなく、繰り返すことなく、アプリケーション内の他の場所から顧客ステータス機能を利用できるようにするにはどうすればいいですか?ViewBag.CustomerStatus = new Func(GetCustomerStatus);すべての単一のActionMethod呼び出しで?
Session/ViewStateに関数ポインタを格納することはできますか?安全 ? ポストバック間で最新の顧客ステータスにアクセスするにはどうすればよいですか?
ありがとうございます。
ええ、あなたは間違いありません。 ViewBagの関数ポインタはレイヤー分離ロジック全体を壊しますが、このプロジェクトにはすでにこのViewBagコントローラの関数ポインタが実装されているため、すべての場所に実装されているため、フローに入ります。 とにかく...バナーパーツビューには既にデータを取り込むモデルがあります。私は自分の新しいモデルと交換することはできないと思う。私はビューにセカンダリモデルを渡す方法はないと思いますか? セッションポインタが最善の方法であるにもかかわらず、それは私の理由です。あなたの考えは? – Shenaniganz
次に、関数ポインタから戻ってきた値をViewBagに埋め込むのが最善の策でしょうか? – mgnoonan