Razor Pages Частичные виды с маршрутизацией - PullRequest
0 голосов
/ 05 марта 2019

Мне бы хотелось, чтобы Razor Pages были частичными представлениями, но я также мог получать их отдельно как фрагменты HTML, чтобы я мог обновить их с помощью AJAX.

Если я поставлю @page в верхней частимой частичный взгляд, он маршрутизируется, но его объект модели будет null.Если я удалю @page, модель будет действительна, однако я больше не смогу ПОЛУЧИТЬ частичное представление отдельно.

Как я могу направить cshtml , а иметь действительную модель нав то же время?Я нахожусь на ASP.NET Core 2.1, и обновление, к сожалению, не вариант.

Ответы [ 2 ]

2 голосов
/ 05 марта 2019

Вы не можете. Просто создайте частичное представление с HTML-кодом, которым вы хотите поделиться, и затем вызовите это частичное представление на своей странице Razor. Затем вы можете использовать частичное представление напрямую, когда вам это нужно.

_MyPartialView.cshtml

@model MyPartialViewModel

<div>Here's my HTML</div>

MyPage.cshtml

@page MyPageModel

<partial name="_MyPartialView" model="Model.MyPartialViewModelInstance" />
0 голосов
/ 06 марта 2019

Если я добавлю @ страницу вверху моего частичного представления, оно будет перенаправлено, но его объект модели будет нулевым.Если я удалю @page, модель будет действительной, однако я больше не смогу ПОЛУЧИТЬ частичное представление отдельно.

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

Как и стандартные страницы Razor, частичные страницы поддерживают директиву @model, определяющуютип для модели данных партиала.Все методы рендеринга имеют перегруженные версии, которые используют модель для частичного использования.

Обратите внимание, что на частичной странице нет директивы @page.Это сделало бы файл полной Razor Page и привело бы к NullReferenceException, связанному с тем, что модель не была объявлена, когда платформа пытается вызвать его - потому что нет связанного файла PageModel.Вы можете ссылаться на Частичные страницы в приложении Razor Pages .

...