我想从Web api响应中隐藏Modifiedby
,Modifieddate
和Createddate
属性。
我尝试使用[JsonOgnore]
,[IgnoreDataMember]
,但没有用。
[ModelMetadataType(typeof(UserModel))]
partial class TUsers
{
}
public class UserModel
{
public int Userid { get; set; }
[Required]
public string Firstname { get; set; }
public string Middlename { get; set; }
public string Lastname { get; set; }
public int? Modifiedby { get; set; }
public DateTime? Modifieddate { get; set; }
public DateTime? Createddate { get; set; }
}
[HttpGet("{id}")]
public IActionResult Get(int id)
{
try
{
var user = _service.GetUser(id);
return Ok(new { status = Constants.Success, message = "", User = user });
}
catch (Exception ex)
{
return BadRequest(new { status = Constants.Failed, message = ex.Message });
}
}
实际结果
{
"status": "success",
"message": "",
"user": {
"userid": 0,
"firstname": null,
"middlename": null,
"lastname": null,
"modifiedby": null,
"modifieddate": null,
"createddate": null
}
}
预期结果
{
"status": "success",
"message": "",
"user": {
"userid": 0,
"firstname": null,
"middlename": null,
"lastname": null
}
}
答案 0 :(得分:0)
您已经提到过使用[JsonOgnore]
在要排除的属性上应该是[JsonIgnore]
,这应该可以工作。
但是,除了传递User
对象外,您还可以创建具有所需属性的UserModel
对象,然后将UserModel
对象传递给Response,但是您需要在此处映射属性User
至UserModel
,但比排除序列化的属性更具可读性。
答案 1 :(得分:0)
简单来说,您可以使用以下属性。
pm2 start main.js --name FOO -i 2
答案 2 :(得分:-1)
使用[DataMember]属性尝试
[DataContract]
public class UserModel
{
[DataMember]
public int Userid { get; set; }
[Required]
[DataMember]
public string Firstname { get; set; }
[DataMember]
public string Middlename { get; set; }
[DataMember]
public string Lastname { get; set; }
public int? Modifiedby { get; set; }
public DateTime? Modifieddate { get; set; }
public DateTime? Createddate { get; set; }
}