私は自分のレイアウト(本質的に私のサイトのすべてのビュー)でこのメニューを利用できます。私は、メニューアイテムの状態(ツリーアイテムが開いているか閉じていなくても)をページリクエスト間で維持したい。私がしたいことはおそらくツリーの状態情報を含むいくつかのクッキーまたはセッション情報を取得する私のレイアウトページから呼び出される子のアクションを持つことができるので、ツリーを正確にどのように最後のリクエストか再構築することができます。私の問題は、私が読んだことから、セッションとクッキーのようなものをコントローラのアクションの中から呼び出すことは悪い習慣です。私が知りたいことは、この問題を解決するためのよりエレガントな方法です。 Cookieとセッションを使用する必要がある場合は、どのように偽装するかについてのアイデアは誰にでもありますか?ありがとうございますビュー全体にわたるメニューツリーの状態を維持する - ASP.NET MVC 3
0
A
答えて
0
私たちは部分的なビューとしてメニューを持つことができます。
レンダリングするアクション部分ビューは、状態をレンダリングするためのパラメータを受け入れます。 各リンクは異なるパラメータでアクションを呼び出します。例のため
、
public PartialViewResult RenderNavigation(int Menuroot, int subMenuItem)
{
IList<MyNavigationItem> navigationItems=GetNavigation();// Some method that'll read nvigationitems.
navigationItems.Where(n=> n.menuId.Equals(Menuroot) ||n.IsOpen.Equals(subMenuItem)).ToList().ForEach(i=> i.IsOpen=true);
return View("SomeMenuView",navigationItems);
}
public class MyNavigationItem{
int menuId{get;set;}
bool IsOpen{get;set;}
int parentMenuId{get;set;} // set default -1 for Root Items
}
1
私の問題は、それがもののコントローラのアクション
興味深い内から セッションとクッキーのようなものを呼び出すための悪い習慣だ、私が読んだものから、です。そして、この記事の著者はなぜそれが悪い習慣になるのかを説明しましたか?あなたのコントローラのアクションからセッションとクッキーにアクセスすることは間違いありません。ユーザーがブラウザを閉じると、永続的なクッキーを使ってツリーのレイアウトを永続させることができないため、実際にはこのような種類のセッションを使用することは適切でない可能性があります。
+0
ありがとうございます。私はその理由がユニットテストであったことを覚えていますFormsCollectionに直接アクセスするのではなく、コントローラのアクションでモデルバインディングを使用する方が良い方法と同じように並べ替えます。問題はレイアウト上で子アクションを使用しているため、モデル結合がオプションかどうかわかりません。 – enamrik
関連する問題
- 1. MVC 3の状態を維持する
- 2. ページリクエスト全体にわたってクエリーストリングパラメータを維持する
- 3. Cognos:複数ページにわたるチェックボックスの状態の維持
- 4. mvcの剃刀でフィルタ状態を維持する
- 5. ASP.NETの複数のユーザーコントロールの状態を維持する
- 6. asp.netのチェックボックスの状態を維持するC#
- 7. asp.netのテーブルの状態を維持する方法
- 8. Nettyチャネルに状態を維持する
- 9. 状態維持を無効にする
- 10. バックボーン維持状態
- 11. リストアイテムの状態を維持する:ホバー
- 12. Yesodの状態を維持する
- 13. 画面の状態を維持する
- 14. ページ間の状態を維持する
- 15. fnDraw()のページング状態を維持する
- 16. サービスファブリックアクターの状態を維持する
- 17. アクティビティ間の状態を維持する
- 18. リダイレクトページのボタン状態を維持する
- 19. ストリーム内の状態を維持する
- 20. ウェブページの状態を維持
- 21. 複数の変換にわたってキー状態を維持する
- 22. TabBarControllerで状態を維持する
- 23. 私的な状態を維持する
- 24. マルチビューアプリケーションで状態を維持する
- 25. Android:ユーザーのログインとセッションが維持された後の全体のアクティビティの状態をリフレッシュする方法
- 26. アイデンティティサーバ3 MVCクライアント状態パラメータ
- 27. ASP.NET MVC:ウィザードのようなアプリケーションでセッション状態を維持するためのベストプラクティス
- 28. ASP.NET MVC 5のビューからコントローラにオブジェクト全体を渡す
- 29. アプリ全体のオブジェクトの状態を維持し、同時にUIを変更する方法
- 30. どのようにasp.net mvcのチェックボックスとラジオボタンの状態を維持するには?
ありがとうございました!どのように正確にメニューをリクエストからリクエストまで持続させることができますか? – enamrik
リクエストをリクエストしてください。これをページ・ツー・ページと考えてください。各ページのメニューは異なります。部分的なビューは、異なるパラメータで各ページで呼び出すことができます。 – Manas
パラメータはどこから来るのでしょうか?クエリ文字列?セッション? – enamrik