powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Полное непонимание частичного представления...
25 сообщений из 41, страница 1 из 2
Полное непонимание частичного представления...
    #39733874
Здравствуйте Уважаемые!
Помогите разобраться с некоторыми аспектами использования частичного представления.
Недавно написал небольшой проект на ASP.NET WebForms, в котором в общем-то реализовал уже многое. Возникло желание освоить MVC. Для примера решил попробовать то же самое приложение переписать на этой технологии. Кое что уже удалось освоить, но вот стоит одна задача, которую пока никак не могу понять как сделать...
Задачу упростил до минимума для понимания...
Есть три модели:
Клиент
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[Key]
public Guid cID { get; set; }

[Required]
[StringLength(500)]
public string cName { get; set; }

[StringLength(50)]
public string cPhone { get; set; }

[StringLength(50)]
public string cMail { get; set; }


Контактные лица
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[Key]
public Guid pID { get; set; }

public Guid cID { get; set; }

[Required]
[StringLength(150)]
public string pFIO { get; set; }

[StringLength(50)]
public string pPhone { get; set; }

[StringLength(50)]
public string pMail { get; set; }


Адреса
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[Key]
public int adID { get; set; }

public Guid cID { get; set; }

[Required]
[StringLength(50)]
public string adType { get; set; }

[StringLength(6)]
public string adPostIndex { get; set; }

[StringLength(50)]
public string adPost { get; set; }



Есть представление List, которое показывает список клиентов со ссылками для перехода к их просмотру Details. В этом Details, помимо данных клиента, хочется видеть список их контактных лиц и список их адресов.
Я себе это представлял сделать через частичные представления. Для этого я в контроллере создал метод
Код: c#
1.
2.
3.
4.
public IActionResult Persons(System.Guid cid)
        {
            return PartialView(db.cl_Persons.Where(x => x.cID == cid));
        }


Создал соответствующее частичное представление List. Теперь вопросы:
1. Как правильно в представлении Details клиента вызвать данный метод передав ID клиента, чтобы это частичное представление отобразилось в представлении Details не вызвав обновления страницы и других побочных вещей?
2. И ещё было бы просто верхом счастья, на текущий момент, это сделать чтобы список, из частичного представления, раскрывался и скрывался бы по нажатию на какую-нибудь кнопку или ActionLink?
Если кто-то может растолковать объясните пожалуйста! Буду признателен! С технологией только начинаю знакомиться, просьба отнестись с пониманием.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733883
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Морофф,
Ну вы же не с головы пишите. Дайте ссылку по частичным откуда пишите. Тем более изучаете.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733889
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффИ ещё было бы просто верхом счастья, на текущий момент, это сделать чтобы список, из частичного представления, раскрывался и скрывался бы по нажатию на какую-нибудь кнопку или ActionLink?MVC это html без ajax.
Поэтому самое простое, это над инфой делаете ссылку с текстом напр. "Свернуть" или "Подробнее" и вызовом js метода divHiddenMy();
При клике выключаете видимость дива.
...
Или ищите крутые HTML компоненты.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733909
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Морофф1. Как правильно в представлении Details клиента вызвать данный метод передав ID клиента, чтобы это частичное представление отобразилось в представлении Details не вызвав обновления страницы и других побочных вещей?


Код: c#
1.
@{ Html.RenderAction(“Details”, params); } 



Сергей Морофф2. И ещё было бы просто верхом счастья, на текущий момент, это сделать чтобы список, из частичного представления, раскрывался и скрывался бы по нажатию на какую-нибудь кнопку или ActionLink?

обычный js с hide|show
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733942
Petro123,
Чаще всего беру информацию здесь - https://metanit.com/sharp/aspnet5/7.5.php, но там подходящих примеров нет...
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733946
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффPetro123,
Чаще всего беру информацию здесь - https://metanit.com/sharp/aspnet5/7.5.php, но там подходящих примеров нет...
авторПоскольку здесь в частичное представление передается список строк, то мы можем использовать модель List<string>, чтобы получить этот список. Теперь изменим частичное представление _GetMessage.cshtml:?
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733950
Petro123,
Мне надо передать не список строк, а модель с выборкой (db.cl_Persons.Where(x => x.cID == cid)). Я не понимаю как это можно сделать из представления.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733953
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффPetro123,
Мне надо передать не список строк, а модель с выборкой (db.cl_Persons.Where(x => x.cID == cid)). Я не понимаю как это можно сделать из представления.
Модель у тебя в частичном. Передать нужно параметр айдишник cid.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733960
Petro123,
Я прошу прощения, видимо я совсем не точен в постановке вопросов! Я так понимаю надо передать контекст, а не модель!?
Модель в представлении действительно объявлена как - @model IEnumerable<testMVC.Models.Person>.
Как отфильтровать только те записи в контексте cl_Persons, у которых cID=cID из карточки Details (Model.cID)
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733964
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффЯ так понимаю надо передать контекст, а не модель!?я бы да, а ты как хочешь.
А из громкого слова контекст, пока один параметр, айдишник. Который наверняка будет в урл.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733965
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733968
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффPetro123,
Чаще всего беру информацию здесь - https://metanit.com/sharp/aspnet5/7.5.php, но там подходящих примеров нет...Возьмите книжку посерьезнее, например Фримена.

Возможно, у вас есть непонимание того, что основное представление, уйдя на клиента, на сервере больше не существует.
Так что чтобы получить частичное представление без перезагрузки страницы, вам нужно вызывать ОТДЕЛЬНЫЙ метод контроллера, запросив его с клиента, например с помощью $().load(). А контроллер, получив от клиента id, сам вызовет рендер частичного представления и вернет его клиенту.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733971
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТак что чтобы получить частичное представление без перезагрузки страницыя против динамики и ajax на начальном курсе.
Генерится вся страница вместе с частичными. Поэтому делаем hidden div.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733972
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мало ли, против чего ты.
Человеку нужна детализация с фильтрацией. Он может это получить либо загрузив полностью все элементы и фильтруя на клиенте (тогда ему нужно вообще изучать ангуляр или еще чего-то). Либо подгружать фильтрованные данные с сервера - и тут опять два варианта - обновлять страницу целиком, либо обновлять частично. Если обновлять частично - то тут аякс, никуда не денешься.
В MVC есть встроенные аякс-формы, можно обойтись в данном случае и без jQuery-аякса
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733975
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое главное для новичка - понять, где клиент, а где сервер, особенно для того, кто пришел с вебформ.
Как выясняется - это частая ошибка для начинающих.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733978
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффВ этом Details, помимо данных клиента, хочется видеть список их контактных лиц и список их адресов.
http://clients/123
В этой страничке добавить адреса для клиента 123.
Это ТЗ для любителей усложнять и фильтровать.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733979
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСамое главное для новичка - понять, где клиент, а где сервер, особенно для того, кто пришел с вебформ.
Как выясняется - это частая ошибка для начинающих.только миллион строк в этот вопрос не мешай и дозагрузку на load()
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733980
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЛибо подгружать фильтрованные данные с сервераНе надо ПОДГРУЖАТЬ!
Увы.
Рендеринг всего для clients/123
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733986
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".
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733992
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффЯ ещё не до конца понимаю, но чувствую, что надо решать через метод контроллера. Склоняюсь больше к Вашему решению. Хотя спасибо всем за отзывчивость.
Я прошу прощения! Проект не совсем 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 частичные действия убрали. Есть вью компоненты.
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733994
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффASP.NET CORE,
В страничке есть:
Код: c#
1.
<partial name="имя. cshtml" />


?
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733995
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttВ ASP.NET Core частичные действия убрали. Есть вью компоненты.я рад))
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39733996
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффASP.NET COREможет ты пошутил и не нажимал кнопку Новый проект? Там нет в шаблоне частичного?
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39734007
Petro123,
Создав метод
Код: c#
1.
2.
3.
4.
public IActionResult Persons(System.Guid cid)
        {
            return PartialView(db.cl_Persons.Where(x => x.cID == cid));
        }


нажал правой кнопкой мыши внутри метода, в контекстном меню выбрал "Добавить представление", задал параметры и поставил галку "Создать как частичное представление".
Это разве надо понимать как что-то иное?
...
Рейтинг: 0 / 0
Полное непонимание частичного представления...
    #39734011
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей МороффЭто разве надо понимать как что-то иное?
Да. Это находясь в модели, только очень низко по уровню создать Vew верхнего уровня.
Нужно наоборот.
1. Новый проект и поискать образец частичного. У меня он есть в любом ново проекте.
2. Хелп искать для Core 2.1 именно.
А потом заводить тему.
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Полное непонимание частичного представления...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]