ASP.net Web API响应-循环数据

随机男孩

我在MVC 5应用程序中使用ADO.net作为我的ORM工具,问题是:

  • 当我对我的Web api进行一些POST操作并返回一些数据时,在我的响应中JSON具有来自外键的所有值,但我没有包含某些数据。

看这简单的一行:

    public async Task<IHttpActionResult> GetMyMessage(int id)
    {

        List<Messages> messages = await db.Messages.Where(a => a.GroupID == id).ToListAsync();


        return Ok(messages);

    }

问题是我没有将任何数据(例如db.Messages.Include(something ...))包含到我的消息中,但仍然得到响应,例如所有用户集合以及与消息表相关的其他内容在数据库中。

我的全局asax是:

protected void Application_Start()
    {

        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

    }

有谁知道如何摆脱这个链接的表,并有干净的JSON响应。否则,我将不得不采取一些解决方法并将其清除一点。

尼尔·史密斯

这听起来像是ViewModels的情况。除了返回您的Message实体,您还可以仅使用您关心该结果的属性来创建新类型。假设您的实体看起来像:

public class Message {
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual User User { get; set; }
    public virtual Group Group { get; set; }
}

public class User {
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Message> Messages { get; set; }
}

public class Group {
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Message> Messages { get; set; }
}

并且您拥有一个Message通过组ID检索a的端点,但是不希望获得有关User或的任何信息Group创建一个ViewModel代表您想要的实际响应:

public class MessageViewModel {
    public int Id { get; set; }
    public string Name { get; set; }
}

然后将实体转换为ViewModel:

public async Task<IHttpActionResult> GetMyMessage(int id)
{
    var messages = await db.Messages.Where(a => a.Group.Id == id).ToListAsync();
    var models = messages.Select(
        m => new MessageViewModel {
            Id = m.Id, 
            Name = m.Name
        }).ToList();

    return Ok(models);
}

现在返回如下内容:

[{id: 1, name: 'SomeMessageName'}, {id: 2, name: 'SomeOtherMessageName'}, ...]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET Web API会话数据

来自分类Dev

ASP.Net Web API故障响应本地化

来自分类Dev

ASP.NET Web API异步响应和写入

来自分类Dev

从ASP .NET Core Web API方法返回完整的XML响应

来自分类Dev

无法从asp.net core web api获得角度响应

来自分类Dev

ASP.NET Web API HttpContext 响应在 IOwinContext 响应之前发回

来自分类Dev

从SQL DB for ASP.NET Web窗体API获取数据

来自分类Dev

ASP.NET Web API SaveChangesAsync与外键数据

来自分类Dev

与ASP.NET Web API相关的表数据

来自分类Dev

带数据库连接的asp.net WEB API

来自分类Dev

使用asp.net Web API发布数据

来自分类Dev

ASP.NET Web Api返回错误数据

来自分类Dev

从AngularJs Ajax调用Asp.Net Web Api获得的响应中缺少.Net属性

来自分类Dev

缓存Asp .Net Web API

来自分类Dev

如何从Asp.Net Web Api 2获得类似于Google API响应的JSON结果?

来自分类Dev

用于从asp.net Web API消费数据的asp.net MVC设计模式

来自分类Dev

ASP.Net/ASP.NET Core Web API的未授权请求返回302重定向响应,而不是401

来自分类常见问题

ASP.NET Web API:返回401 /未经授权的响应的正确方法

来自分类Dev

从Asp.net Web API 2过滤器属性响应返回JSON的正确方法

来自分类Dev

ASP.NET Web API在json响应中返回空集合

来自分类Dev

来自ASP.Net Web API 2的一致一致的错误响应

来自分类Dev

从ASP.NET Web API方法向jquery ajax发送间歇响应

来自分类Dev

对asp.net Web API的POST请求达到某些限制时,服务器无响应

来自分类Dev

具有请求/响应模式的ASP.NET Core Web API异常处理

来自分类Dev

ASP.NET Web API 2截断json响应

来自分类Dev

对asp.net Web API的POST请求达到某些限制时,服务器无响应

来自分类Dev

ASP.Net Core Web API - ResponseCache 属性未向响应添加“Cache-Control”标头

来自分类Dev

如何根据 Web API 2 ASP.NET 中接收到的动作进行响应

来自分类Dev

响应 JWT 错误的身份验证 Asp.Net Core Web Api

Related 相关文章

  1. 1

    ASP.NET Web API会话数据

  2. 2

    ASP.Net Web API故障响应本地化

  3. 3

    ASP.NET Web API异步响应和写入

  4. 4

    从ASP .NET Core Web API方法返回完整的XML响应

  5. 5

    无法从asp.net core web api获得角度响应

  6. 6

    ASP.NET Web API HttpContext 响应在 IOwinContext 响应之前发回

  7. 7

    从SQL DB for ASP.NET Web窗体API获取数据

  8. 8

    ASP.NET Web API SaveChangesAsync与外键数据

  9. 9

    与ASP.NET Web API相关的表数据

  10. 10

    带数据库连接的asp.net WEB API

  11. 11

    使用asp.net Web API发布数据

  12. 12

    ASP.NET Web Api返回错误数据

  13. 13

    从AngularJs Ajax调用Asp.Net Web Api获得的响应中缺少.Net属性

  14. 14

    缓存Asp .Net Web API

  15. 15

    如何从Asp.Net Web Api 2获得类似于Google API响应的JSON结果?

  16. 16

    用于从asp.net Web API消费数据的asp.net MVC设计模式

  17. 17

    ASP.Net/ASP.NET Core Web API的未授权请求返回302重定向响应,而不是401

  18. 18

    ASP.NET Web API:返回401 /未经授权的响应的正确方法

  19. 19

    从Asp.net Web API 2过滤器属性响应返回JSON的正确方法

  20. 20

    ASP.NET Web API在json响应中返回空集合

  21. 21

    来自ASP.Net Web API 2的一致一致的错误响应

  22. 22

    从ASP.NET Web API方法向jquery ajax发送间歇响应

  23. 23

    对asp.net Web API的POST请求达到某些限制时,服务器无响应

  24. 24

    具有请求/响应模式的ASP.NET Core Web API异常处理

  25. 25

    ASP.NET Web API 2截断json响应

  26. 26

    对asp.net Web API的POST请求达到某些限制时,服务器无响应

  27. 27

    ASP.Net Core Web API - ResponseCache 属性未向响应添加“Cache-Control”标头

  28. 28

    如何根据 Web API 2 ASP.NET 中接收到的动作进行响应

  29. 29

    响应 JWT 错误的身份验证 Asp.Net Core Web Api

热门标签

归档