Преобразовать список <ViewModel>в ViewModel? - PullRequest
1 голос
/ 05 августа 2020

Я хочу предисловие к этому, сказав, что я новичок в работе с моделями. Пожалуйста, простите меня, если на этот вопрос есть простой ответ.

Я изо всех сил пытался вернуть указанную модель представления обратно к модели представления. Чтобы дать некоторую предысторию, у меня есть форма поиска, передаваемая модели, полученной из моего ActionResult, и затем я получаю отфильтрованный результат.

[Контроллер]

    public ActionResult GetFilters(MembershipVM model)
    {
        var uDataList = new List<MembershipVM>();        
        
        model = _service.GetFilters(model);

        return View("SendEmail", model);
     }

[Сервис]

    public List<MembershipVM> GetFilters(MembershipVM model)
    {               
        var query = _context.Members.Where(f => f.Deleted == 0).AsQueryable();
        var members = _context.Members.ToList();

        query = query.Where(f => agencyTypes.Contains(f.AgencyType));
        
        var uDataList = new List<MembershipVM>();


        foreach (var member in members)
        {
            var uData = new MembershipVM();

            uData.Email = member.Email;
            uData.AgencyType = member.AgencyType;
            ...
            uDataList.Add(uData);
        }

        return uDataList;
    }
    

Как я могу преобразовать список из "_service.GetFilters" в MembershipVM? Есть ли лучший / простой способ получить результаты в виде объекта из службы "_service.GetFilters"?

Заранее большое спасибо!

Daisy

1 Ответ

0 голосов
/ 05 августа 2020

Я не уверен, что вы здесь пытаетесь сделать. Сначала вы получаете результаты вашего фильтра из этого кода:

model = _service.GetFilters(model);

И определение вашего метода следующее:

public List<MembershipVM> GetFilters(MembershipVM model)

Итак, вы ожидаете, что это список результатов . Короче говоря, набор результатов.

Теперь, если вы хотите передать его в свой ActionResult только как одну сущность, тогда получение одного из ваших результатов поможет:

return View("SendEmail", model.Take(1).SingleOrDefault());

Но почему нужно передавать только одну сущность? Но это должно работать с вашими текущими требованиями.

...