简体   繁体   English

ASP.NET会在响应中省略特定变量吗?

[英]ASP.NET omit specific variable in response?

In ApiController subclass, 在ApiController子类中,

[HttpGet]
public HttpResponseMessage api()
{
 //somecode 
 Res res = new Res();
 return Request.CreateResponse(200, res);

}

And Res class, 还有Res类

public class Res{
Public Meta meta{get;set;}
Public Data data{get;set;}
}

In case of some http status code such as 401, 500, I want to omit data variable. 在某些http状态代码(例如401、500)的情况下,我想省略data变量。

200 ok 200 OK

{ meta:{...}, data:{...}}

500 internal server error { meta:{...}} 500内部服务器错误{meta:{...}}

How to omit data variable? 如何忽略数据变量? remove variable in class? 删除类中的变量? use ExpandoObject()? 使用ExpandoObject()?

You could use: 您可以使用:

public class Res{

    Public Meta meta{get;set;}

    [JsonIgnore]
    Public Data data{get;set;}
}

Or, decorate the ones you want... 或者,装饰您想要的...

[DataContract]
public class Res{

    [DataMember]  
    Public Meta meta{get;set;}

    Public Data data{get;set;}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM