|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Здравствуйте Уважаемые! Помогите разобраться с некоторыми аспектами использования частичного представления. Недавно написал небольшой проект на ASP.NET WebForms, в котором в общем-то реализовал уже многое. Возникло желание освоить MVC. Для примера решил попробовать то же самое приложение переписать на этой технологии. Кое что уже удалось освоить, но вот стоит одна задача, которую пока никак не могу понять как сделать... Задачу упростил до минимума для понимания... Есть три модели: Клиент Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Контактные лица Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Адреса Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Есть представление List, которое показывает список клиентов со ссылками для перехода к их просмотру Details. В этом Details, помимо данных клиента, хочется видеть список их контактных лиц и список их адресов. Я себе это представлял сделать через частичные представления. Для этого я в контроллере создал метод Код: c# 1. 2. 3. 4.
Создал соответствующее частичное представление List. Теперь вопросы: 1. Как правильно в представлении Details клиента вызвать данный метод передав ID клиента, чтобы это частичное представление отобразилось в представлении Details не вызвав обновления страницы и других побочных вещей? 2. И ещё было бы просто верхом счастья, на текущий момент, это сделать чтобы список, из частичного представления, раскрывался и скрывался бы по нажатию на какую-нибудь кнопку или ActionLink? Если кто-то может растолковать объясните пожалуйста! Буду признателен! С технологией только начинаю знакомиться, просьба отнестись с пониманием. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 08:51 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей Морофф, Ну вы же не с головы пишите. Дайте ссылку по частичным откуда пишите. Тем более изучаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 09:33 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффИ ещё было бы просто верхом счастья, на текущий момент, это сделать чтобы список, из частичного представления, раскрывался и скрывался бы по нажатию на какую-нибудь кнопку или ActionLink?MVC это html без ajax. Поэтому самое простое, это над инфой делаете ссылку с текстом напр. "Свернуть" или "Подробнее" и вызовом js метода divHiddenMy(); При клике выключаете видимость дива. ... Или ищите крутые HTML компоненты. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 09:52 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей Морофф1. Как правильно в представлении Details клиента вызвать данный метод передав ID клиента, чтобы это частичное представление отобразилось в представлении Details не вызвав обновления страницы и других побочных вещей? Код: c# 1.
Сергей Морофф2. И ещё было бы просто верхом счастья, на текущий момент, это сделать чтобы список, из частичного представления, раскрывался и скрывался бы по нажатию на какую-нибудь кнопку или ActionLink? обычный js с hide|show ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 10:23 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Petro123, Чаще всего беру информацию здесь - https://metanit.com/sharp/aspnet5/7.5.php, но там подходящих примеров нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 10:57 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффPetro123, Чаще всего беру информацию здесь - https://metanit.com/sharp/aspnet5/7.5.php, но там подходящих примеров нет... авторПоскольку здесь в частичное представление передается список строк, то мы можем использовать модель List<string>, чтобы получить этот список. Теперь изменим частичное представление _GetMessage.cshtml:? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:03 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Petro123, Мне надо передать не список строк, а модель с выборкой (db.cl_Persons.Where(x => x.cID == cid)). Я не понимаю как это можно сделать из представления. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:08 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффPetro123, Мне надо передать не список строк, а модель с выборкой (db.cl_Persons.Where(x => x.cID == cid)). Я не понимаю как это можно сделать из представления. Модель у тебя в частичном. Передать нужно параметр айдишник cid. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:11 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Petro123, Я прошу прощения, видимо я совсем не точен в постановке вопросов! Я так понимаю надо передать контекст, а не модель!? Модель в представлении действительно объявлена как - @model IEnumerable<testMVC.Models.Person>. Как отфильтровать только те записи в контексте cl_Persons, у которых cID=cID из карточки Details (Model.cID) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:20 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффЯ так понимаю надо передать контекст, а не модель!?я бы да, а ты как хочешь. А из громкого слова контекст, пока один параметр, айдишник. Который наверняка будет в урл. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:26 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей Морофф, https://stackoverflow.com/questions/20799658/how-can-i-pass-parameters-to-a-partial-view-in-mvc-4 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:29 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффPetro123, Чаще всего беру информацию здесь - https://metanit.com/sharp/aspnet5/7.5.php, но там подходящих примеров нет...Возьмите книжку посерьезнее, например Фримена. Возможно, у вас есть непонимание того, что основное представление, уйдя на клиента, на сервере больше не существует. Так что чтобы получить частичное представление без перезагрузки страницы, вам нужно вызывать ОТДЕЛЬНЫЙ метод контроллера, запросив его с клиента, например с помощью $().load(). А контроллер, получив от клиента id, сам вызовет рендер частичного представления и вернет его клиенту. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:33 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Shocker.ProТак что чтобы получить частичное представление без перезагрузки страницыя против динамики и ajax на начальном курсе. Генерится вся страница вместе с частичными. Поэтому делаем hidden div. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:38 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Мало ли, против чего ты. Человеку нужна детализация с фильтрацией. Он может это получить либо загрузив полностью все элементы и фильтруя на клиенте (тогда ему нужно вообще изучать ангуляр или еще чего-то). Либо подгружать фильтрованные данные с сервера - и тут опять два варианта - обновлять страницу целиком, либо обновлять частично. Если обновлять частично - то тут аякс, никуда не денешься. В MVC есть встроенные аякс-формы, можно обойтись в данном случае и без jQuery-аякса ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:42 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Самое главное для новичка - понять, где клиент, а где сервер, особенно для того, кто пришел с вебформ. Как выясняется - это частая ошибка для начинающих. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:43 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффВ этом Details, помимо данных клиента, хочется видеть список их контактных лиц и список их адресов. http://clients/123 В этой страничке добавить адреса для клиента 123. Это ТЗ для любителей усложнять и фильтровать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:46 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Shocker.ProСамое главное для новичка - понять, где клиент, а где сервер, особенно для того, кто пришел с вебформ. Как выясняется - это частая ошибка для начинающих.только миллион строк в этот вопрос не мешай и дозагрузку на load() ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:47 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Shocker.ProЛибо подгружать фильтрованные данные с сервераНе надо ПОДГРУЖАТЬ! Увы. Рендеринг всего для clients/123 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 11:50 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Shocker.ProТак что чтобы получить частичное представление без перезагрузки страницы, вам нужно вызывать ОТДЕЛЬНЫЙ метод контроллера, запросив его с клиента, например с помощью $().load(). А контроллер, получив от клиента id, сам вызовет рендер частичного представления и вернет его клиенту. Я ещё не до конца понимаю, но чувствую, что надо решать через метод контроллера. Склоняюсь больше к Вашему решению. Хотя спасибо всем за отзывчивость. Я прошу прощения! Проект не совсем MVC, а ASP.NET CORE, в котором @Html.Action("Persons", "Home", new { cid = Model.cID }) не работает похоже - 'IHtmlHelper<Client>" не содержит определение для "Action", и наиболее подходящий перегруженный метод расширения "UrlHelperExtensions.Action(IUrlHelper, string, string, object)" требует наличия получателя типа "IUrlHelper". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:00 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффЯ ещё не до конца понимаю, но чувствую, что надо решать через метод контроллера. Склоняюсь больше к Вашему решению. Хотя спасибо всем за отзывчивость. Я прошу прощения! Проект не совсем MVC, а ASP.NET CORE, в котором @Html.Action("Persons", "Home", new { cid = Model.cID }) не работает похоже - 'IHtmlHelper<Client>" не содержит определение для "Action", и наиболее подходящий перегруженный метод расширения "UrlHelperExtensions.Action(IUrlHelper, string, string, object)" требует наличия получателя типа "IUrlHelper". В ASP.NET Core частичные действия убрали. Есть вью компоненты. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:04 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффASP.NET CORE, В страничке есть: Код: c# 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:05 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
hVosttВ ASP.NET Core частичные действия убрали. Есть вью компоненты.я рад)) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:06 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффASP.NET COREможет ты пошутил и не нажимал кнопку Новый проект? Там нет в шаблоне частичного? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:09 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Petro123, Создав метод Код: c# 1. 2. 3. 4.
нажал правой кнопкой мыши внутри метода, в контекстном меню выбрал "Добавить представление", задал параметры и поставил галку "Создать как частичное представление". Это разве надо понимать как что-то иное? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:18 |
|
Полное непонимание частичного представления...
|
|||
---|---|---|---|
#18+
Сергей МороффЭто разве надо понимать как что-то иное? Да. Это находясь в модели, только очень низко по уровню создать Vew верхнего уровня. Нужно наоборот. 1. Новый проект и поискать образец частичного. У меня он есть в любом ново проекте. 2. Хелп искать для Core 2.1 именно. А потом заводить тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:23 |
|
|
start [/forum/topic.php?fid=18&msg=39733909&tid=1355086]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
135ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 262ms |
0 / 0 |