将 List<ViewModel> 投射到 ViewModel?
Cast List<ViewModel> to ViewModel?
首先我想说我是使用模型的新手。如果这个问题有一个简单的答案,请原谅我。
我一直在努力将列出的视图模型恢复为视图模型。为了提供一些背景知识,我将一个搜索表单传递给来自我的 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?是否有 better/easier 方法从“_service.GetFilters”服务获取结果作为对象?
在此先致谢!
雏菊
我不确定你想在这里做什么。首先,您从这段代码中获得过滤器的结果:
model = _service.GetFilters(model);
你的方法定义是这样的:
public List<MembershipVM> GetFilters(MembershipVM model)
所以您会期望这是一个结果列表。简而言之,结果的集合。
现在,如果您只想将它作为一个实体传递到 ActionResult 上,那么获取其中一个结果就可以了:
return View("SendEmail", model.Take(1).SingleOrDefault());
但是为什么只需要传递一个实体呢?但这应该符合您当前的要求。
首先我想说我是使用模型的新手。如果这个问题有一个简单的答案,请原谅我。
我一直在努力将列出的视图模型恢复为视图模型。为了提供一些背景知识,我将一个搜索表单传递给来自我的 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?是否有 better/easier 方法从“_service.GetFilters”服务获取结果作为对象?
在此先致谢!
雏菊
我不确定你想在这里做什么。首先,您从这段代码中获得过滤器的结果:
model = _service.GetFilters(model);
你的方法定义是这样的:
public List<MembershipVM> GetFilters(MembershipVM model)
所以您会期望这是一个结果列表。简而言之,结果的集合。
现在,如果您只想将它作为一个实体传递到 ActionResult 上,那么获取其中一个结果就可以了:
return View("SendEmail", model.Take(1).SingleOrDefault());
但是为什么只需要传递一个实体呢?但这应该符合您当前的要求。