2016-06-23 13 views
0

私はASP.NET Core MVCを初めて使用しており、データベースからメニューを生成しています。データベースからのナビゲーションメニュー

私はそれを動作させることができましたが、問題があります。データベース機能がIActionResult Index()メソッドであるため、アクションがインデックスの場合のみ動作します。

この問題を解決するにはどうすればよいですか?私のナビゲーションビューは_layout.chtmlです。

レイアウトをレンダリングする前に関数を呼び出すにはどうすればよいですか?毎回データベースにクエリを実行するので、これはパフォーマンスに影響しますか?

+0

ViewComponentを使用できます。http://www.mikesdotnetting.com/article/294/view-components-in-asp-net-core-mvc –

+0

@AlexandrePiresありがとうございます。それは簡単だった。ハハー。おかげで、私は答えとしてあなたのコメントをマークすることはできません。そして、パフォーマンスヒットがありますか? – user3717030

+0

MVC6タグはもう使用しないでください。これは、古いWebstack(MVC5)に基づくASP.NET MVCの将来のバージョン用です。 ASP.NET Coreは、.NET Coreをベースとした完全で新しく、互換性のない移植可能なバージョンです。代わりに[tag:asp.net-core-mvc]タグや[tag:asp.net-core]タグを使用してください。問題をお手伝いできる人があなたの質問を見つける可能性が高いです – Tseng

答えて

2

ViewComponentを作成できます(hereを参照)。

単純に_Layout.cshtmlで呼び出します。

+0

ヒットは、レイアウトがレンダリングされるたびにデータベースに照会するためです。 – user3717030

+0

ナビゲーションがそれを頻繁に変更しない場合は、ビューコンポーネント内でIMemoryCacheを使用(注入)できます。これにより、データベースの呼び出し時間を短縮できます。 –

関連する問題