Как загрузить PartialView в конкретном представлении? - PullRequest
0 голосов
/ 03 сентября 2018

Предположим, что в моей папке Dashboard у меня есть PartialView с именем _RightSidebar, мне нужно включить это _PartialView только в DashBoard, поэтому я ищу способ загрузить _RightSidebar только когда пользователь находится внутри вида Dashboard.

На самом деле я загружаю _RightSidebar в _Layout, но если я не в Dashboard, я получу ошибку, потому что _RightSidebar является только частью Dashboard (я хочу избежать создать избыточный код для каждого представления панели мониторинга.)

Тот же механизм уже существует для Section, но я не могу найти ничего похожего на _PartialView, кто-то знает, как это сделать?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

В вашем макете просто определите необязательный раздел , а затем на странице панели мониторинга выполните частичное представление в этом разделе:

Layout.cshtml

@RenderSection("RightSidebar", false);
@RenderBody()

Dashboard.cshtml

@page
@section RightSidebar {
    @await Html.PartialAsync("_RightSidebar.cshtml")
}

// РЕДАКТИРОВАТЬ: альтернативный ответ с использованием наследования макета.

BaseLayout.cshtml

<!DOCTYPE html>
<html>
<head>  
  <title></title>
</head>
<body>
  @RenderBody()    
</body>
</html>

DashboardLayout.cshtml

@{
  Layout = "BaseLayout.cshtml";
}

@await Html.Partial("_RightSidebar.cshtml")
@RenderBody()

DefaultPage.cshtml

@page
@{
  Layout = "BaseLayout.cshtml";
}

DashboardPage.cshtml

@page
@{
  Layout = "DashboardLayout.cshtml";
}
0 голосов
/ 03 сентября 2018

Вы можете просто загрузить его в свой Dashboard.cshtml Как это

@await Html.PartialAsync("_RightSidebar.cshtml")

См .: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/partial?view=aspnetcore-2.1

Предполагается, что вы используете .net core 2.0, но я уверен, что вышеописанное также работает и в 1.0

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