Передача данных в Layout Razor Pages без контроллера - PullRequest
0 голосов
/ 23 декабря 2018

Я хотел бы визуализировать данные из моей модели на странице макета - особенно, когда пользователь добавляет элемент в корзину, я хотел бы подсчитать количество элементов в корзине и отобразить их на панели навигации рядом с изображениемкорзина.

Пользователь может добавить продукт более чем на 1 страницу (например, со страницы индекса или страницы продукта / индекса и т. Д.).

Кто-нибудь имел дело с чем-то похожим?

Iхотел бы, чтобы моя навигационная панель выглядела так:

навигационная панель

<div class="navbar-collapse collapse show" id="navbarColor01" style="">
    <ul class="navbar-nav mr-auto">
        <li class="nav-item active">
            <a asp-page="/Index" class="nav-link" >Home <span class="sr-only">(current)</span></a>
        </li>
        <li>
            <a asp-page="/ShoppingCart/Index"> <i class="fas fa-shopping-cart fa-1x fa-cog "></i></a>
<div class="badge badge-danger badge-pill">5</div> //here is the number to be displayed
        </li>
    </ul>
</div>

1 Ответ

0 голосов
/ 23 декабря 2018

Для этого есть разные способы, оцените свои варианты и решите, что делать.

Этого можно достичь:

  1. Использование сумок для просмотра.Это приведет к репутации кода на протяжении всего проекта.Потому что вы собираетесь устанавливать пакет просмотра для каждого посещения страницы.
  2. Использование частичных просмотров.Вызвав Ajax-запрос к действию, а затем вернув частичное представление.Частичные представления обычно предназначены для того, чтобы быть частью Контроллера / Страницы, что не имеет смысла иметь GetCart с другого контроллера / страницы.Также лучше избегать просмотра репутации.
  3. Просмотр компонентов.Обычно это идеальный способ сделать это, так как вам нужно поработать за сценой, а затем вернуть значение.Компоненты View могут жить самостоятельно, что хорошо для SoC.

Моя личная рекомендация будет View Component, это новая функция в ядре asp.net (заменяет ChildAction).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...