MVC3 для Loop Logic с использованием ViewModel - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть модель представления, которая содержит объект заливки и объект rx. Над кодом, показанным ниже, у меня есть список заливок и список rxs. Они заполняются правильно.

Ниже я установил объекты fill и rx в экземпляре моей модели представления на то, что находится в первом элементе каждого списка. Затем я добавляю экземпляр моей модели представления в список MyViewModels и перезапускаю цикл. Однако непосредственно перед перезапуском цикла я удаляю первый элемент в Списке заливок и Списке rxs, чтобы в следующем цикле мои объекты viewmodel были другими.

Проблема заключается в том, что при отладке на каждой итерации цикла в Списке MyViewModels объекты каждой модели представления устанавливаются равными новым значениям из списка заполнения и списка rx.

Это должно быть что-то настолько простое, что я пропускаю. Заранее спасибо.

for (int i = 0; i < f; i++)
                 {
                         _myViewModel.fill = FillList.ElementAt(0);
                         _myViewModel.rx = RxList.ElementAt(0);

                         MyList.Add(_myViewModel);

                         FillList.RemoveAt(0);
                         RxList.RemoveAt(0);
                 }


                  return View(MyList);

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

Мне кажется, что вы создаете _myViewModel вне цикла for, поэтому _myViewModel - это один объект.

Вы не добавляете клон или что-то вроде _myViewModelв список MyList, но ссылка на него.Поэтому в следующий раз, когда цикл пройдёт и изменится _myViewModel, изменятся уже элементы в списке.

Вам необходимо создать новый объект myViewModel внутри цикла

0 голосов
/ 06 декабря 2011

вы пробовали.

for(int i=0; i<f; i++)
{      
    _myVieModel = new MyVieModel();
    _myViewModel.fill = FillList[i]
    _myViewModel.rx = RxList[i]
    MyList.Add(_myViewModel);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...