2016-06-23 4 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 благодарит. это было легко. hahahah. спасибо чувак, но я не могу отметить ваш комментарий в качестве ответов. И будет ли успех? – user3717030

+0

Пожалуйста, не используйте теги MVC6. Это для будущей версии ASP.NET MVC на основе старого webstack (MVC5). ASP.NET Core - это совершенно новая и несовместимая портативная версия на базе .NET Core. Используйте теги [tag: asp.net-core-mvc] и/или [tag: asp.net-core], и ​​ваш вопрос, скорее всего, будет найден людьми, которые могут помочь вам с проблемой – Tseng

ответ

2

Вы можете попытаться создать ViewComponent (см. here).

Вы просто должны вызвать его в _Layout.cshtml.

+0

, будет ли производительность потому что каждый раз, когда макет визуализировался, он будет запрашивать базу данных. – user3717030

+0

Вы можете использовать (впрыскивать) IMemoryCache внутри компонента вида в случае навигации, это не так часто меняется. Таким образом вы можете уменьшить количество раз, когда вызывается база данных. –

Смежные вопросы