ViewComponent запущен, но на странице нет вывода - PullRequest
0 голосов
/ 08 мая 2020

У меня есть панель навигации вверху моего сайта ASP. Net CORE, и я пытаюсь создать параметры меню c Dynami. Пока что я просто пытаюсь заменить некоторые параметры на странице _layout на ViewComponent, как это было в некоторых других проектах.

<header>
    <nav class="navTop">
        <a class="logo" asp-controller="Home" asp-action="Index">
            <img src="~/Images/logo.svg" />
        </a>
        @{ await Component.InvokeAsync("MainMenu"); }
        @{ await Html.RenderPartialAsync("_LoginPartial"); }
    </nav>
</header>

У меня в папке есть Component View

Views > Shared > Components > MainMenu > Default.cshtml

Это выглядит так:

@model IEnumerable<MyProject.Models.Home.MainMenuItem>

@ foreach (var item в модели) {@ Html .ActionLink (item.DisplayText, item.Action, item.Controller) }

И ViewComponent InvokeAsyn c выглядит так:

    public async Task<IViewComponentResult> InvokeAsync()
    {
        var x = new DataAccess.Menus.Menu(_context).GetMainMenuItems(User.Identity.Name);
        return View(x);
    }

И метод DataAccess просто возвращает список MyProject.Models.Home.MainMenuItem, как и ожидалось, в котором все заполнено нормально, когда я шагаю через, но на странице ничего не получается вместо @{ await Component.InvokeAsync("MainMenu"); }!

Я делал это раньше в нескольких других проектах и ​​никогда не имел проблем - поэтому я не знаю, почему это могло идти не так. Есть идеи?!

Он переходит в представление, и я даже вижу, как он проходит через foreach l oop с правильными заполненными свойствами, так почему же на странице ничего не отображается?

1 Ответ

1 голос
/ 08 мая 2020

Вы должны написать это так

@{ @await Component.InvokeAsync("MainMenu") }

Или напрямую

@await Component.InvokeAsync("MainMenu")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...