トップ回答者
常に表示可能なドロップダウンメニューを作成したい

質問
-
いつもお世話になっております。
言語 = C#
開発手法 = MVC
開発環境 = Visual Studio 2015 Pro
OS = Win7
DB = SQL Server 2014どの画面からでも他の画面にアクセス出来るように
画面上部にドロップダウン形式でメニューを作ろうと考えています。システムは最初にログイン画面を表示させ、ログインしたユーザー権限に合わせて
DBからメニュー内容やコントローラ名等を取得し、可変にしました。メニューは最初から存在している共通レイアウト『_Layout.cshtml』に組み込みました。
ここまで来て気づいたのですが、共通レイアウトにドロップダウンメニューを入れてしまうと、
画面を再描画する度に必ずメニュー内容をDBにアクセスして共通レイアウトに渡さなくてはなりません。ログイン後はメニューを変更する必要もなく、データの取得もしたくないのですが、
この場合、普通はどうやって実現しているのでしょうか?画面イメージ的には、このフォーラムのヘッダに位置する『コミュニティ』や『ドキュメント』等が
現在のメニューなり、画面を再描画する際はメニュー更新を回避したく、
参考サイトのご教示やアドバイスを頂きたいです。
以上、何卒宜しくお願い申し上げます。
回答
-
具体的にどういうことがしたいのか質問からは分からないのですが、何にせよステートレスな Web アプリで、
> ログイン後はメニューを変更する必要もなく、データの取得もしたくないのですが、
ということをしたいのであれば、取得したデータをどこかに保持しておくほか方法はなく、そのために ASP.NET には以下の機能が用意されていますので、そのどれかを使うことになると思います。
•ビューステート
•コントロールの状態
•隠しフィールド
•Cookie
•クエリ文字列
•アプリケーション状態
•セッション状態
•プロファイル プロパティ詳しくは以下の記事を見てください。
ASP.NET の状態管理の概要
https://msdn.microsoft.com/ja-jp/library/75x4ha6s.aspxASP.NET MVC で、ユーザー毎に異なる情報ということのようですので、上記の内利用できるのは「Cookie」「セッション状態」になるかと思います。
検討してみてください。
【追伸】
アプリケーションキャッシュも使えるかもしれません。上の機能とあわせて検討してみてください。
ASP.NET のキャッシュの概要
https://msdn.microsoft.com/ja-jp/library/ms178597(v=VS.100).aspx
【追伸2】
たびたびすみません。もう一つ忘れていました。
ブラウザ依存ですが Web Storage の使用も検討に含めてはいかがでしょう?
Web Storage
http://www.htmq.com/webstorage/
- 編集済み SurferOnWww 2017年3月23日 2:48 追伸2追加
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月23日 5:30
- 回答としてマーク kong0214 2017年3月26日 14:50
すべての返信
-
具体的にどういうことがしたいのか質問からは分からないのですが、何にせよステートレスな Web アプリで、
> ログイン後はメニューを変更する必要もなく、データの取得もしたくないのですが、
ということをしたいのであれば、取得したデータをどこかに保持しておくほか方法はなく、そのために ASP.NET には以下の機能が用意されていますので、そのどれかを使うことになると思います。
•ビューステート
•コントロールの状態
•隠しフィールド
•Cookie
•クエリ文字列
•アプリケーション状態
•セッション状態
•プロファイル プロパティ詳しくは以下の記事を見てください。
ASP.NET の状態管理の概要
https://msdn.microsoft.com/ja-jp/library/75x4ha6s.aspxASP.NET MVC で、ユーザー毎に異なる情報ということのようですので、上記の内利用できるのは「Cookie」「セッション状態」になるかと思います。
検討してみてください。
【追伸】
アプリケーションキャッシュも使えるかもしれません。上の機能とあわせて検討してみてください。
ASP.NET のキャッシュの概要
https://msdn.microsoft.com/ja-jp/library/ms178597(v=VS.100).aspx
【追伸2】
たびたびすみません。もう一つ忘れていました。
ブラウザ依存ですが Web Storage の使用も検討に含めてはいかがでしょう?
Web Storage
http://www.htmq.com/webstorage/
- 編集済み SurferOnWww 2017年3月23日 2:48 追伸2追加
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月23日 5:30
- 回答としてマーク kong0214 2017年3月26日 14:50