私は自分のレイアウト(本質的に私のサイトのすべてのビュー)でこのメニューを利用できます。私は、メニューアイテムの状態(ツリーアイテムが開いているか閉じていなくても)をページリクエスト間で維持したい。私がしたいことはおそらくツリーの状態情報を含むいくつかのクッキーまたはセッション情報を取得する私のレイアウトページから呼び出される子のアクションを持つことができるので、ツリーを正確にどのように最後のリクエストか再構築することができます。私の問題は、私が読んだことから、セッションとクッキーのようなものをコントローラのアクションの中から呼び出すことは悪い習慣です。私が知りたいことは、この問題を解決するためのよりエレガントな方法です。 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. Cognos:複数ページにわたるチェックボックスの状態の維持
- 3. Nettyチャネルに状態を維持する
- 4. バックボーン維持状態
- 5. ASP.NETの複数のユーザーコントロールの状態を維持する
- 6. asp.netのチェックボックスの状態を維持するC#
- 7. ウェブページの状態を維持
- 8. fnDraw()のページング状態を維持する
- 9. リダイレクトページのボタン状態を維持する
- 10. ページ間の状態を維持する
- 11. リストアイテムの状態を維持する:ホバー
- 12. 画面の状態を維持する
- 13. 私的な状態を維持する
- 14. マルチビューアプリケーションで状態を維持する
- 15. TabBarControllerで状態を維持する
- 16. アイデンティティサーバ3 MVCクライアント状態パラメータ
- 17. 一度終了すると完全なアプリケーションの状態を維持する
- 18. ASP.NET MVC:ウィザードのようなアプリケーションでセッション状態を維持するためのベストプラクティス
- 19. Facebook C#SDKセッション状態の維持
- 20. 複雑なフィルタ状態を維持するための戦略?
- 21. アンドロイドアプリケーションでユーザー名のセッションまたは状態を維持する
- 22. スクロールレベルメニューの状態を維持するには
- 23. PostBackの後にFileUploadコントロールの状態を維持する方法
- 24. コールバック関数間の状態を維持
- 25. WebファームでホストされているASP.NET MVCアプリケーションでユーザーのセッション状態を維持する
- 26. ASP.net FileUploadコントロールはマルチビューパネルで状態を維持しません
- 27. ASP.Net MVCでDRYを維持する
- 28. jQuery UIボタン - アクティブな状態を維持し、ホバー状態を無視する
- 29. シナリオ間のガーキン状態の維持
- 30. 無効なモデル状態を引き起こすドロップダウンメニュー。 ASP.NET MVC 3
ありがとうございました!どのように正確にメニューをリクエストからリクエストまで持続させることができますか? – enamrik
リクエストをリクエストしてください。これをページ・ツー・ページと考えてください。各ページのメニューは異なります。部分的なビューは、異なるパラメータで各ページで呼び出すことができます。 – Manas
パラメータはどこから来るのでしょうか?クエリ文字列?セッション? – enamrik