Использование нескольких моделей на вкладках с Razor Pages Viewcomponent .Net Core 2.1 - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть чуть более сложное требование, чем у вашего среднего отдельного Viewcomponent, который я пытаюсь решить.

Я создал веб-приложение с Razor Pages, используя .Net Core 2.1 и Entity Framework

На одной из страниц у меня есть представление с вкладками, которое я использую для ввода и отображения информации в различных форматах, на данный момент я построил каждую «вкладку» как отдельную страницу бритвы, поскольку все они используют несколько моделей, от одной додисплей и один для захвата данных.Я попытался использовать частичные представления без какой-либо удачи, так как, когда я пытаюсь изменить вкладку, вся страница перезагружается, не идеально и немного медленнее.

Введите Viewcomponents, я могу получить простой Viewcomponent, который использует одну модель дляработает нормально, но для других вкладок, где у меня есть 2-3 введенных / связанных модели, я не могу найти способ реализовать это.Я слишком много спрашиваю о фреймворке?

NB.Я пытаюсь сделать это, используя только страницы бритвы с CSharp и без Javascript.Это вообще возможно, или я должен добавить полотенце и просто перейти на Angular-MVC?

1 Ответ

0 голосов
/ 13 ноября 2018

Вам доступно несколько вариантов. Если честно, ваш лучший путь вперед - это класс-оболочка, по сути, модель моделей. Вы просто создаете класс со свойствами для каждой конкретной модели, которая вам действительно нужна. Это позволит вам использовать это как модель для вашей страницы, но при этом получить доступ ко всем вашим отдельным моделям для вкладок.

Представление компонентов является правильным подходом, но есть две вещи, которые вы должны понять:

  1. Визуализация компонента представления полностью автономна. Другими словами, ваше основное действие / представление превращается в тупик, на самом деле ничего не делая самостоятельно. Вместо этого вся логика построения вашей модели и передачи ее в представление для каждой вкладки содержится в компоненте представления, соответствующем этой вкладке.

  2. Компоненты представления - это просто рендеринг HTML на странице. Вы не можете публиковать в компоненте просмотра. Вы по-прежнему будете отправлять сообщения в свое действительное основное действие, поэтому его необходимо настроить для обработки всего, что делает рассматриваемая вкладка.

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

...