首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将List<ViewModel>转换为ViewModel?

将List<ViewModel>转换为ViewModel?
EN

Stack Overflow用户
提问于 2020-08-06 00:49:14
回答 1查看 25关注 0票数 1

在此之前,我想说我是一个使用模型的新手。如果这个问题有一个简单的答案,请原谅我。

我一直在努力将列出的视图模型恢复为视图模型。为了给出一些背景,我有一个搜索表单从我的ActionResult传递给一个模型,然后过滤出结果。

控制器

代码语言:javascript
复制
    public ActionResult GetFilters(MembershipVM model)
    {
        var uDataList = new List<MembershipVM>();        
        
        model = _service.GetFilters(model);

        return View("SendEmail", model);
     }

服务

代码语言:javascript
复制
    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“服务中以对象的形式获取结果?

提前谢谢你!

黛西

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-06 04:08:51

我不确定你在这里想要做什么。首先,您可以从下面的代码中获得过滤器的结果:

代码语言:javascript
复制
model = _service.GetFilters(model);

你的方法的定义是:

代码语言:javascript
复制
public List<MembershipVM> GetFilters(MembershipVM model)

因此,您可能会认为这是一个结果列表。简而言之,就是结果的集合。

现在,如果你只想把它作为一个实体在你的ActionResult上传递,那么得到你的一个结果就可以了:

代码语言:javascript
复制
return View("SendEmail", model.Take(1).SingleOrDefault());

但是为什么你只需要传递一个实体呢?但这应该适用于您当前的需求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63269862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档