Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
4 / 4 / 0
Регистрация: 06.03.2018
Сообщений: 134
1

Передать модель в частичное представление

03.01.2020, 15:40. Показов 3537. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне нужно предать в частичное представление только часть модели
сама модель:
C#
1
2
3
4
5
6
    public class ViewDiary
    {
        public IEnumerable<Model1> Model1{ get; set; }
        public IEnumerable<Model2> Model2{ get; set; }
        public IEnumerable<Model3> Model3{ get; set; }
    }
я пытаюсь вызвать частичное представление, самим выводом проблем нет, а вот, когда я пытаюсь передать модель - возникает ошибка
код представления
Код
@using System.Security.Claims
@using ASP.ViewModels
@model ViewDiary

@await Html.PartialAsync("путь к частичному представлению 1", Model.Model1)
код Html
@await Html.PartialAsync("путь к частичному представлению 2", Model.Model2)
код Html
@await Html.PartialAsync("путь к частичному представлению 3", Model.Model3)
в самом частичном представлении я использую, однако он не правильный т.к. появляется ошибка - что то, что я передаю в частичное представление не соответствует ожиданиям самого частичного представления, как это можно исправить? в самом контроллере я формирую модель ViewDiary
Код
@using System.Security.Claims
@using ASP.ViewModels
@model ViewDiary.Model1

код использования модели
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2020, 15:40
Ответы с готовыми решениями:

Как передать собственную модель в частичное представление?
Добрый день, только начинаю разбираться с mvc, помогите, пожалуйста с такой задачей. На...

Передать модель в представление и получить данные
Есть модель (пример): public class User { public string Surname { get; set; } ...

Частичное представление
Приветствую! Имеется частичное представление c DropDownList , которое &quot;подтягивается&quot; на основное...

Частичное представление
Добрый день. Разрабатываю весьма серьезный проект, с большой посещаемостью. Чтобы уменьшить...

5
HF
1196 / 786 / 187
Регистрация: 09.09.2011
Сообщений: 2,400
Записей в блоге: 2
03.01.2020, 16:08 2
Смотрим тут
Цитата Сообщение от Stavrius Посмотреть сообщение
public IEnumerable<Model1> Model1
сравниваем здесь
Цитата Сообщение от Stavrius Посмотреть сообщение
@model ViewDiary.Model1
В чём разница? В типе.

Притом что "ViewDiary.Model1" вообще даже не тип, @model указывает на тип данных модели. Если вас так путают связи, можете для начала прокидывать всю модель везде. И у вас и в частичном точно так же будет написано "@model ViewDiary" и вы возьмёте то что вам нужно. Потом когда поймёте ненужность - уберёте лишнее.
0
4 / 4 / 0
Регистрация: 06.03.2018
Сообщений: 134
03.01.2020, 17:37  [ТС] 3
HF, т.е. когда я вызываю частичное представление - мне не нужно передавать модель туда? в самом частичном представлении объявить модель и все? Или нужно вот так?
C#
1
2
3
4
5
6
public class ViewDiary
    {
        public IEnumerable<Model1> _Model1{ get; set; }
        public IEnumerable<Model2> _Model2{ get; set; }
        public IEnumerable<Model3> _Model3{ get; set; }
    }
Код
@using System.Security.Claims
@using ASP.ViewModels
@model ViewDiary

@await Html.PartialAsync("путь к частичному представлению 1", Model)
код Html
@await Html.PartialAsync("путь к частичному представлению 2", Model)
код Html
@await Html.PartialAsync("путь к частичному представлению 3", Model)
Код
@using System.Security.Claims
@using ASP.ViewModels
@model ViewDiary
какой-то код
0
HF
1196 / 786 / 187
Регистрация: 09.09.2011
Сообщений: 2,400
Записей в блоге: 2
03.01.2020, 18:32 4
Лучший ответ Сообщение было отмечено Stavrius как решение

Решение

Цитата Сообщение от Stavrius Посмотреть сообщение
т.е. когда я вызываю частичное представление - мне не нужно передавать модель туда? в самом частичном представлении объявить модель и все? Или нужно вот так?
Сейчас у вас работает? Скорее всего да. Код начинающего. Но это не страшно и не плохо.

Но теперь сделайте следующий шаг и исправьте так как нужно. Последовательно сделайте исправления, чтобы привести код порядку.
Если вы передали в частичное представление
C#
1
@await Html.PartialAsync("путь к частичному представлению 1", Model.Model1)
то в самом представлении должен быть указан правильный тип. Идём в модель и смотрим какого типа переданный объект.
C#
1
public IEnumerable<Model1> Model1
значит в представлении должен быть указан именно такой тип
C#
1
@model IEnumerable<Model1>
1
4 / 4 / 0
Регистрация: 06.03.2018
Сообщений: 134
04.01.2020, 08:03  [ТС] 5
HF, Подскажите как в данном случае из контролера вызвать частичное представление, т.е. я через Ajax хочу его обновить, в самом методе
C#
1
return PartialView("путь к частичному представлению 1", Model1);
0
HF
1196 / 786 / 187
Регистрация: 09.09.2011
Сообщений: 2,400
Записей в блоге: 2
04.01.2020, 15:01 6
Случайно этот вопрос не к этой теме?
Контроллер не читает Json через Ajax

Цитата Сообщение от Stavrius Посмотреть сообщение
Подскажите как в данном случае из контролера вызвать частичное представление, т.е. я через Ajax хочу его обновить, в самом методе
Вы путаете понятия или не понимаете процесс.
Из контроллера нельзя вызвать представление.
Контроллер может его "Нарисовать" и отдать вам. Вот как в вашем примере.
Или вы можете обратиться к контроллеру за новым представлением. Получить полный хтмл код и вставить его в хтмл, или получить модель (например в json) и вставить тоже в хтмл, но в конкретные элементы или просто использовать эти данные.

Теперь снова уточните что вы хотите.
И уточните что такое "хочу обновить, в самом методе". В методе контроллера? Дак вы итак когда запросили новое вью, то и получите актуальное, обновлённое.
0
04.01.2020, 15:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2020, 15:01
Помогаю со студенческими работами здесь

Частичное представление и jquery
Представление List.cshtml отображает список товаров. Строки списка формируются частичным...

Не работает частичное представление в ajax запросе
VS 2010, ASP.NET MVC4, Template:Empty Здравствуйте, коллеги. Никак не могу добиться, чтобы...

Обновить частичное представление после действия
Доброго времени суток. Недавно начал изучать ASP.NET и MVC в частности. Возник такой вопрос: есть...

Два контроллера одно частичное представление
Всем привет! У меня два контроллера и для них я создала частичное представление, где находятся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru