powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ViewBag в foreach
25 сообщений из 59, страница 2 из 3
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
25 сообщений из 59, страница 2 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ViewBag в foreach
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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