Вам нужен компонент представления, здесь, а не частичное представление.
public class MegaMenuViewComponent : ViewComponent
{
private readonly UnitOfWork _unitOfWork;
public MegaMenuViewComponent(UnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
public IViewComponentResult Invoke()
{
var navigationlist = _unitOfWork.Nav.GetAll();
return View(navigationlist);
}
}
Затем поместите HTML для того, что было вашим частичным представлением, в представление ~/Views/Shared/Components/MegaMenu/Default.cshtml
. Наконец, в макете добавьте следующее, где вы хотите, чтобы меню появилось:
@await Component.InvokeAsync("MegaMenu")
См. Документацию по компонентам вида для получения дополнительной информации.