powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ViewBag в foreach
9 сообщений из 59, страница 3 из 3
ViewBag в foreach
    #39774910
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С вас фотка в профиле )
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39775140
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не кончились еще мои мучения попытки разобраться в этом. Теперь, благодаря вам, у меня модель строготипизированна, но foreach не работает, методы в нем не работают. Что-то я еще упускаю.

Если сделать так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var users = from c in userModel.userCollection.AsQueryable<User>()
                            where c.UserName == (TextBox1)
                            select c;

                foreach (User u in users)
                {                  
                    u.Phone = "999555";
                    u.LastName = "familia";
                    u.FirstName = "name";                    
                }
         
               return View(users);


Я правильно понимаю, что все юзеры будут с фамилией familia и именем name?
Но ничего не меняется, все, что в users сразу поместилось, то и отображается
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39775143
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82но foreach не работаетВыдается сообщение "я сегодня не работаю"? выражайтесь яснее
Sveta82методы в нем не работаютв ком в нем? в foreach? Что такое методы в foreach? выражайтесь яснее.

Sveta82Но ничего не меняется, все, что в users сразу поместилось, то и отображаетсяЯ плохо понимаю, почему Дима предложил такую странную схему - передавать IQueryable в качестве модели - за это надо по рукам бить, но так как в его квалификации сомневаться не приходится, видимо, просто тупанул. Поэтому в foreach в контроллере вы заполняете некие Users, а при повторном перечислении в представлении вы заново запрашиваете их из БД.

Как я говорил - у вас должна быть модель - это конкретный класс! Вы его заполняете в контроллере и передаете в представление.
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39775144
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProКак я говорил - у вас должна быть модель - это конкретный класс! Вы его заполняете в контроллере и передаете в представление.То есть примерно так в контроллере:

Код: c#
1.
2.
3.
4.
5.
var model = new MyModel();
...
// заполнение свойств модели - пользователей, сообщений и т.п.
...
return View(model);



А представление должно начинаться со строки
@model MyModel
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39775145
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, если следовать диминой схеме, нужно вместо @model IQueryable<User> написать @model IList<User>, а при получении модели сделать ToList(), но я бы так делать не стал
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39775150
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82Но ничего не меняется, все, что в users сразу поместилось, то и отображается
Потому как данные надо материализовать :)

То есть из запроса IQueryable или курсора положить в объект: массив, или список.
Как это у вас сделано при поиске сообщений пользователя:
Код: c#
1.
return messageCollection.FindSync(filter).ToList();


Сделайте по аналогии и поиск пользователей:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
var users = userModel.userCollection.FindSync(u => u.UserName == (TextBox1)).ToList();

foreach (User u in users)
{
    u.Messages = messageModel.findByUser(u.LastName);          
}

return View(users);


Я ведь правильно понял, что userCollection - это IMongoCollection ?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39775152
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proпочему Дима предложил такую странную схему
Я предложил пойти в лоб с тем, чтобы человек начал разбираться. И человек начал :)
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39775153
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВпрочем, если следовать диминой схеме
Какой такой диминой схеме? Нет её.

Пусть она с коллегами решает, какой схеме следовать.
Лично я за прямое использование MongoDB.Bson и MongoDB.Driver в контроллере в реальном проекте по рукам бью.
Но для обучения сойдёт. Пусть разбирается.
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39775154
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий МухSveta82Но ничего не меняется, все, что в users сразу поместилось, то и отображается
Потому как данные надо материализовать :)

То есть из запроса IQueryable или курсора положить в объект: массив, или список.
Как это у вас сделано при поиске сообщений пользователя:
Код: c#
1.
return messageCollection.FindSync(filter).ToList();


Сделайте по аналогии и поиск пользователей:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
var users = userModel.userCollection.FindSync(u => u.UserName == (TextBox1)).ToList();

foreach (User u in users)
{
    u.Messages = messageModel.findByUser(u.LastName);          
}

return View(users);


Я ведь правильно понял, что userCollection - это IMongoCollection ?

Да, Дмитрий, это IMongoCollection, вы совершенно правы. С ToList() все получилось! Ура! Спасибо огромное!
...
Рейтинг: 0 / 0
9 сообщений из 59, страница 3 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ViewBag в foreach
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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