c# - ASP MVC API Controller 组合类结果

标签 c# asp.net asp.net-mvc asp.net-mvc-4

在 ASP MVC Api 上,我有树形命名函数来检索数据,但我想将它们组合到一个请求 StylesAll:{ },这里是代码。

[ActionName("Styles")]
public IEnumerable<StyleDTO> GetStyles()
{
    return from s in db.styles
           select new StyleDTO() { Name = s.Name, StyleId = s.StyleId };

}


[ActionName("Labels")]
public IEnumerable<LabelDTO> GetLabels()
{
    return from l in db.Labels
           select new LabelDTO() { Name = l.Name, LabelId = l.LabelId , image = l.image};
}

[ActionName("Commodity")]
public IEnumerable<CommodityDTO> GetCommodity()
{
    return from c in db.Commodities
           select new CommodityDTO() { CommodityId = c.CommodityId, CreateDate = c.CreateDate, Name = c.Name, Varieties = ( from v in c.Varieties select new VarietyDTO() 
           {
                CommodityId = v.CommodityId, Name = v.Name, VarietyId = v.VarietyId
           }) };
}

最佳答案

创建一个 ViewModel 来包含所有数据,然后创建函数来填充 ViewModel 并返回它。

查看模型

public class AllStyles
{
    public IEnumerable<StyleDTO> Commodities {get;set;}
    public IEnumerable<LabelDTO> Labels {get;set;}
    public IEnumerable<CommodityDTO> Styles {get;set;}
}

API操作方法

[ActionName("StylesAll")]
public AllStyles GetAllStyles()
{
    return new AllStyles{
        Styles = from s in db.styles 
                 select new StyleDTO() { 
                     Name = s.Name, 
                     StyleId = s.StyleId },
        Labels = from l in db.Labels 
                 select new LabelDTO() { 
                     Name = l.Name, 
                     LabelId = l.LabelId , 
                     image = l.image},
        Commodities = from c in db.Commodities 
                      select new CommodityDTO() { 
                          CommodityId = c.CommodityId, 
                          CreateDate = c.CreateDate, 
                          Name = c.Name, 
                          Varieties = ( from v in c.Varieties 
                                        select new VarietyDTO() {
                                            CommodityId = v.CommodityId, 
                                            Name = v.Name, 
                                            VarietyId = v.VarietyId})}
    };
}

关于c# - ASP MVC API Controller 组合类结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19759039/

相关文章:

c# - 为什么 Graphics.DrawImage 裁剪了我图像的一部分?

asp.net - 如何在 ASP.NET 中跨多个 Web 应用程序维护相同的 session ID

javascript - 如何在 asp.net 中使用 Angular 选项卡返回上一页

c# - 如果将通用集合实例化为包含 iDisposable 项目,这些项目是否会被处置?

c# - 什么时候使用那么多种方法来创建一个类型的实例?

c# - 运行时的 Expression.Lambda 和查询生成,最简单的 "Where"示例

javascript - 我如何知道是什么触发了 endRequest 函数?

html - 在媒体查询中使用时未加载背景图像

asp.net - Html.PagedListPager 上的 System.Web.Mvc.HtmlHelper<dynamic> 异常

asp.net-mvc - WCF客户端实例化