Как правильно использовать частичные представления в asp. net бритвенных страницах? - PullRequest
0 голосов
/ 14 марта 2020

Я сейчас работаю над проектом asp. net core mvc. Существует главная страница (cs html), которая содержит некоторые данные и два частичных представления.

Контроллер этой страницы содержит действие, которое возвращает модель в представление (с привязкой модели). Я догадался, что еще 2 действия в контроллере, созданном для возврата данных в оба частичных представления, будут работать просто отлично. Но теперь мое приложение не работает, потому что оно пытается передать данные с главной страницы частичным представлениям, создавая ошибку привязки (у частичных представлений есть свои уникальные модели).

В настоящее время я использую <partial> тег, чтобы добавить мои частичные виды на основной вид. Этот тег содержит свойство view-data, которое решит проблему с привязкой модели. Но создается впечатление, что создание большого объекта объединения со множеством подобъектов для его прохождения через view-data не будет хорошей практикой.

Поэтому я хотел бы получить мнение о передовых методах работы с этим виды дел. Каков наилучший способ создания страниц с несколькими разделенными данными, подобными этим?

Мое текущее мнение состоит в том, что лучший способ состоит в том, чтобы основной вид получал жизнеспособную информацию от контроллера, а при частичном просмотре - через ajax , Но в любом случае, все еще остается вопрос, как обойти эту ошибку, когда приложение пытается передать данные из основного представления в частичное представление (например, если я хочу сохранить привязку модели в частичном представлении, чтобы заполнить ее ajax).

1 Ответ

0 голосов
/ 11 апреля 2020

Итак, после некоторых исследований я пришел к выводу и нашел решение своей проблемы. PartialViews не для таких случаев. PartialView всегда зависит от информации о модели, поступающей из родительского представления.

Вместо этого, если вы хотите добиться того же поведения, что и я, вам следует использовать ViewComponents. Это полностью независимый инструмент, который имеет возможность самостоятельно создавать доступ к данным и строить любую модель, которая ему нужна. Вы также можете получить доступ к ViewComponent в любом месте ваших представлений, даже к макетам, и даже передать параметры по имени.

Надеюсь, кто-нибудь найдет эту статью полезной. Вот официальное руководство msdn по , как реализовать и использовать компоненты вида

...