powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ViewBag в foreach
59 сообщений из 59, показаны все 3 страниц
ViewBag в foreach
    #39774418
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приложение по шаблону mvc. В контроллере в методе ActionResult такой код


Код: c#
1.
2.
3.
4.
5.
6.
7.
  ViewBag.users =  from c in userModel.userCollection.AsQueryable<User>() where 
             c.UserName ==(TextBox1) select c;    

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


В метод findByUser попадает значение первого u, и в представлении для каждого юзера выводится одно и то же, полученное в методе по фамилии первого юзера. Подскажите почему?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774473
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82,
Программируйте!
Ставьте логирование, бряки, пошаговую отладку.
Это наша работа(с)
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774485
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82по фамилии первого юзера. Подскажите почему?Действительно, почему первого, хотя должно быть последнего.
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774488
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем тут вообще цикл? И зачем тут вообще ViewBag?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774538
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProSveta82по фамилии первого юзера. Подскажите почему?Действительно, почему первого, хотя должно быть последнего. Да,Вы правы, последнего. Помогите разобраться
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774541
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЗачем тут вообще цикл? И зачем тут вообще ViewBag?
А что можно использовать? Вот застряла и никак не могу найти решение. Подскажите в каком направлении двигаться или пример какой-нибудь
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774546
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82,
А кто требует?
Я к тому что женскому началу тут труднее в программировании. Се ля ви.
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774554
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82А что можно использовать?Цикл тут не нужен, потому что вы используете только последнее значение из списка. Можно просто взять последнее значение.

ViewBag для передачи данных из контроллера в представление можно, конечно, но ведь вы же используете MVC! Вот и используйте первую букву - Модель - для того она и предназначена
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774558
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82Подскажите в каком направлении двигатьсяТут прекрасно всё.
В своё время мне рассказывали, как ввести человека на улице в ступор - подойти к нему и спросить "Извините, вы не подскажете, я правильно иду?".

Вот и вы: что хотите получить - скрываете, но спрашиваете, как сделать.
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774559
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно сделать свою модель, которая будет содержать коллекцию юзеров с их сообщениями, в методе контроллера вы её заполните и вернёте во View, а на страничке из этой заполненной модели всё оттобразите
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774563
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneвернёте во View
почему "вернёте" то?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774566
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понял, что метод get контроллера, он должен вернуть результат
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774570
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneя так понял, что метод get контроллера, он должен вернуть результатда не, возвращается то View, а модель во View не возвращается, а передается жеж. Ну это так... к слову придрался )
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774571
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ясно, а то я не то подумал =)
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774603
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProSveta82Подскажите в каком направлении двигатьсяТут прекрасно всё.
В своё время мне рассказывали, как ввести человека на улице в ступор - подойти к нему и спросить "Извините, вы не подскажете, я правильно иду?".

Вот и вы: что хотите получить - скрываете, но спрашиваете, как сделать.
Shocker.Pro, база MongoDb. 4 коллекции. Пользователь в textbox вводит значение, идет поиск по коллекции юзеров, затем ищутся сообщения у каждого пользователя, есть еще два похожих метода, которые ищут данные по двум другим коллекциям, просто сюда их писать не стала потому что аналогичны. И затем все это выводится в таблице, информация по каждому юзеру.
Вот примерно так выводятся данные в представлении
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@foreach (var user in ViewBag.users)
            {
                <tr>                 
                    <td>
                        <label><b>Id: </b></label>@user.Id <br>
                        <label><b>Username: </b></label> @user.UserName <br>
                        <label><b> Имя: </b></label>@user.FirstName   @user.LastName<br>
                        <label><b>Сообщения:</b> </label>ViewBag.message

                    </td>
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774605
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProSveta82А что можно использовать?Цикл тут не нужен, потому что вы используете только последнее значение из списка. Можно просто взять последнее значение.

ViewBag для передачи данных из контроллера в представление можно, конечно, но ведь вы же используете MVC! Вот и используйте первую букву - Модель - для того она и предназначена
Значит foreach здесь не поможет? Мне казалось, что это самое простое решение. Видимо ошибалась
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774607
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Sveta82,
А кто требует?
Я к тому что женскому началу тут труднее в программировании. Се ля ви.
Не спорю, но это не значит, что не надо пробовать, особенно если это вызывает огромный интерес
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774612
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82Вот примерно так выводятся данные в представлениину так должен быть вложенный foreach по сообщениям каждого пользователя. А так вы только последнее сообщение выводите.
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774641
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если вот так
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
@foreach (var user in ViewBag.users)
            {
                <tr>                 
                    <td>
                        <label><b>Id: </b></label>@user.Id <br>
                        <label><b>Username: </b></label> @user.UserName <br>
                        <label><b> Имя: </b></label>@user.FirstName   @user.LastName<br>
                        <label><b>Сообщения:</b> </label>   @foreach (var mes in ViewBag.message)
                        {
                            @mes.Text
}

                    </td>


Все равно последнего юзера данные выводятся для всех
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774646
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViewBag.message здесь у вас всего лишь строка, а вам нужна коллекция сообщений, поэтому переделайте свою модель и избавьтесь вообще от ViewBag
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774650
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82Все равно последнего юзера данные выводятся для всехПотому что данные только последнего юзера и содержатся в ViewBag.message. Вы же не кладете туда данные других юзеров. Вам, кажется, нужно начать с примеров попроще, например

Код: c#
1.
2.
3.
4.
5.
6.
					var j = -1;
					for (var i = 0; i <= 10; i++)
					{
						j = i;
					}
					Console.WriteLine(j);

Чему по вашему будет равно j после окончания цикла?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774652
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneViewBag.message здесь у вас всего лишь строка, а вам нужна коллекция сообщений, поэтому переделайте свою модель и избавьтесь вообще от ViewBagСкорее всего не строка, а коллекция, потому что она его перечисляет в последнем примере.

Совет завести модель дэвушка успешно игнорирует :(
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774663
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСкорее всего не строка, а коллекция, потому что она его перечисляет в последнем примере.А с другой стороны, можно ведь и строку перечислить ))) Мы все равно не знаем, что возвращает findByUser, авторша весьма скрытная
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774665
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, есть такое. одни загадки
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774667
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть думает над j пока...
Потом надо прочитать учебник по C#
Потом надо прочитать учебник по MVC
А потом уже что-то писать )
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774813
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Второй метод также возвращает список.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
  public List<Message> findByUser(string val)
        {
            var bQuery = "{ 'sender_lastname' : '" + val + "'}";

            var filter = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(bQuery);
            var result = messageCollection.FindSync(filter).ToList();
          
            return result;
        }


Shocker.Pro , j=10. Совсем меня камнями не закидывайте, пожалуйста. Одно дело WriteLine поставить перед кавычкой, другое дело как вывести в представлении в моем случае. Я потому здесь и спрашиваю у более опытных людей, не нашла в литературе подобного. Модель переделывать буду, если с foreach не разберусь, пока мне кажется с foreach проще
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774819
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82, что это за адъ вы написали? Зачем делать JSON-строку, а потом десерилизовать её в BSON, еслм можно сразу создать BsonDocument?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774835
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthatSveta82, что это за адъ вы написали? Зачем делать JSON-строку, а потом десерилизовать её в BSON, еслм можно сразу создать BsonDocument?

Можно и так, конечно, Вы правы


Код: c#
1.
2.
3.
4.
5.
6.
7.
 public List<Message> findByUser(string val)
        {
        
           var filter = new BsonDocument("lastname", val);
           return  messageCollection.Find(filter).ToList();
            
        }
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774842
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82Shocker.Pro , j=10.а почему именно 10, а не 0,1,2,3...10? Сможете понять почему? Если сможете, посмотрите потом на свой код и скажите, почему ViewBag.message будет содержать только сообщения последнего пользователя, а не всех пользователей (по аналогии).


Sveta82Модель переделывать буду, если с foreach не разберусьНеправильно. Вы запутались именно потому, что у вас нет модели. Если бы была модель, вам бы сложно было написать такую глупость, потому что компилятор не дал бы. Модель с помощью строгой типизации сможет упорядочить у вас в голове то, что не упорядочивается, когда вы пытаетесь применить динамический словарь (ViewBag) - работа с ним неудобна, неочевидна и не стоит его применять при передаче данных от контроллера к представлению. Так что не спорьте, делайте модель.
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774843
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Shocker.Pro]Sveta82Shocker.Pro , j=10.а почему именно 10, а не 0,1,2,3...10? Сможете понять почему? Если сможете, посмотрите потом на свой код и скажите, почему ViewBag.message будет содержать только сообщения последнего пользователя, а не всех пользователей (по аналогии).
Значение j каждый раз перезаписывается, и в моем ViewBag.message также происходит, это понятно. В том и вопрос, как сохранить сообщения всех пользователей и передать их во view, найти некий аналог Console.WriteLine, что ли или дополнительные переменные нужны или еще один список, уже глаз замылился, не вижу выхода. Я долго пыталась сама разобраться, прежде чем сюда написала. Вы знаете, как это сделать, но хотите, чтоб я своим умом дошла? Я не могу найти ничего похожего на просторах Интернета. Есть у Вас пример какой-нибудь?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774844
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82В том и вопрос, как сохранить сообщения всех пользователей и передать их во view ... Вы знаете, как это сделать, но хотите, чтоб я своим умом дошла?
Именно так. Причем уже несколько человек вам предложили правильный путь для решения - использовать модель.
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774845
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro

Sveta82Модель переделывать буду, если с foreach не разберусьНеправильно. Вы запутались именно потому, что у вас нет модели. Если бы была модель, вам бы сложно было написать такую глупость, потому что компилятор не дал бы. Модель с помощью строгой типизации сможет упорядочить у вас в голове то, что не упорядочивается, когда вы пытаетесь применить динамический словарь (ViewBag) - работа с ним неудобна, неочевидна и не стоит его применять при передаче данных от контроллера к представлению. Так что не спорьте, делайте модель.
Теперь буду задавать вопросы по модели, вероятно они покажутся вам глупыми. Эх, была-не была. Я в проекте создала 4 модели, которые соотносятся с коллекциями в БД. Я так понимаю, мне нужно создать еще один класс , в котором будут те свойства, которые необходимо показывать во view? В примерах везде строготипизированные модели отражают существующие свойства, а у меня еще и методы выборка в выборке, их куда писать?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774846
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам нужно создать модель представления .
То есть некий POCO-класс, который будет содержать ВСЕ данные, которые нужны для отображения странички. В данном случае - данные о пользователях и данные о сообщениях всех пользователей.

Взглянув на получившуюся модель, вы должны понимать, что она удовлетворяет этим требованиям и, в частности, в ней можно получить доступ к сообщениям РАЗНЫХ пользователей.

Затем добавляете в представление @model MyViewModel, а в контроллер return View(myViewModelInstance)

Затем переделываете View, чтобы он извлекал данные из модели, а не из ViewBag

Затем переделываете контроллер, чтобы он складывал данные в модель, а не во ViewBag
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774849
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82а у меня еще и методы выборка в выборке, их куда писать?методы выборок останутся в контроллере или в бизнес-моделях, как вам угодно. Речь идет о создании именно модели представления , эта модель не должна содержать бизнес-логику, максимум вспомогательные методы для отображения
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774854
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82,

а с английским у вас как?

я в своё время прошёл бесплатный курс "MongoDB for .NET Developers" (сейчас доступен на YouTube)
там по шаблону MVC делается Блог, где у Постов есть Комментарии

советую посмотреть
могу и весь проект отдать, что в результате курса получается
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774856
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82база MongoDb. 4 коллекции. Пользователь в textbox вводит значение, идет поиск по коллекции юзеров, затем ищутся сообщения у каждого пользователя, есть еще два похожих метода, которые ищут данные по двум другим коллекциям
Базу сами спроектировали? Почему бы не хранить агрегат целиком в одной коллекции?

Что вообще за приложение?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774857
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий МухSveta82,

а с английским у вас как?

я в своё время прошёл бесплатный курс "MongoDB for .NET Developers" (сейчас доступен на YouTube)
там по шаблону MVC делается Блог, где у Постов есть Комментарии

советую посмотреть
могу и весь проект отдать, что в результате курса получается
С английским дружу хорошо. Спасибо за совет, рада любой помощи! Если не трудно поделитесь, тем, что есть
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774859
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий МухSveta82база MongoDb. 4 коллекции. Пользователь в textbox вводит значение, идет поиск по коллекции юзеров, затем ищутся сообщения у каждого пользователя, есть еще два похожих метода, которые ищут данные по двум другим коллекциям
Базу сами спроектировали? Почему бы не хранить агрегат целиком в одной коллекции?

Что вообще за приложение?
Базу не я проектировала, поэтому работаю с тем, что есть.
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774862
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухMongoDB for .NET Developers
YouTube: https://www.youtube.com/playlist?list=PL7qd7wvXpXMbvSlWsXdoAZ6uVYCmAfNFQ
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774863
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82Дмитрий МухSveta82,

а с английским у вас как?

я в своё время прошёл бесплатный курс "MongoDB for .NET Developers" (сейчас доступен на YouTube)
там по шаблону MVC делается Блог, где у Постов есть Комментарии

советую посмотреть
могу и весь проект отдать, что в результате курса получается
С английским дружу хорошо. Спасибо за совет, рада любой помощи! Если не трудно поделитесь, тем, что есть
YouTube: https://www.youtube.com/playlist?list=PL7qd7wvXpXMbvSlWsXdoAZ6uVYCmAfNFQ
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774870
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий МухДмитрий МухMongoDB for .NET Developers
YouTube: https://www.youtube.com/playlist?list=PL7qd7wvXpXMbvSlWsXdoAZ6uVYCmAfNFQ
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774871
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProВам нужно создать модель представления .
То есть некий POCO-класс, который будет содержать ВСЕ данные, которые нужны для отображения странички. В данном случае - данные о пользователях и данные о сообщениях всех пользователей.

Взглянув на получившуюся модель, вы должны понимать, что она удовлетворяет этим требованиям и, в частности, в ней можно получить доступ к сообщениям РАЗНЫХ пользователей.

Затем добавляете в представление @model MyViewModel, а в контроллер return View(myViewModelInstance)

Затем переделываете View, чтобы он извлекал данные из модели, а не из ViewBag

Затем переделываете контроллер, чтобы он складывал данные в модель, а не во ViewBag
Спасибо, пошла думать
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774876
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕсли бы была модель
Моя девушка в молодости моделью была
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774879
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatShocker.ProЕсли бы была модель
Моя девушка в молодости моделью была
Не исключено, что Sveta82 тоже )
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774882
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sveta82Shocker.ProВам нужно создать модель представления .
То есть некий POCO-класс, который будет содержать ВСЕ данные, которые нужны для отображения странички. В данном случае - данные о пользователях и данные о сообщениях всех пользователей.

Взглянув на получившуюся модель, вы должны понимать, что она удовлетворяет этим требованиям и, в частности, в ней можно получить доступ к сообщениям РАЗНЫХ пользователей.

Затем добавляете в представление @model MyViewModel, а в контроллер return View(myViewModelInstance)

Затем переделываете View, чтобы он извлекал данные из модели, а не из ViewBag

Затем переделываете контроллер, чтобы он складывал данные в модель, а не во ViewBag
Спасибо, пошла думать
Что тут думать-то? :)

В лоб:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class User
{
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }

    public string UserName { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public List<Message> Messages { get; set; }
}


В контроллере:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
var users = from c in userModel.userCollection.AsQueryable<User>() where 
            c.UserName ==(TextBox1) select c;    

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

return View(users);


В представлении:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
@foreach (var user in Model)
{
    <tr>                 
        <td>
            <label><b>Id:</b> </label>@user.Id<br>
            <label><b>Username:</b> </label>@user.UserName <br>
            <label><b> Имя: </b></label>@user.FirstName @user.LastName<br>
            <label><b>Сообщения:</b> </label>
    @foreach (var mes in user.Messages)
    {
        @mes.Text
    }
        </td>
    </tr>
}
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774883
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, человек согласился подумать, а ты ему раз - и готовенькое.
Боишься конкуренции, молодежь подпирает?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774885
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНу вот, человек согласился подумать, а ты ему раз - и готовенькое.
Боишься конкуренции, молодежь подпирает?
Конкуренции в чём?


И где готовенькое? Поправил её же код.
Тебе учителя не указывали на твои ошибки и не объясняли как сделать?
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774887
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так. Домашнее задание ТС - сделать модель. Дальше смотрим ошибки, объясняем, поправляем
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774888
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proсмотрим ошибки, объясняем, поправляем
Дык уже посмотрели, объяснили, поправили :)
...
Рейтинг: 0 / 0
ViewBag в foreach
    #39774908
Sveta82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем хорошим людям, ответившим мне на этой страничке. Дмитрий Мух, Вам отдельная благодарность!!!
...
Рейтинг: 0 / 0
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
59 сообщений из 59, показаны все 3 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ViewBag в foreach
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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