Json仅在发送GET请求时忽略

时间:2018-11-14 23:42:49

标签: .net asp.net-web-api

我正在编写.net Web API,遇到了麻烦。我有一个支持CRUD操作的/ Users端点。我不希望出于明显的原因在响应中显示密码字段,但是我确实希望能够发布到/ Users并发送密码字段(在创建新用户时)。

当前,我正在使用[JsonIgnore],它在GET / Users情况下可以实现我想要的功能,但是出现此错误:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details

当我尝试发布用户时。这是因为[JsonIgnore]标记未发送密码字段。我该如何解决?

这是我的模特:

User Model

1 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点,但最干净的方法是实际创建两个针对其用法而修剪的类,或者将属性设置为虚拟,并让派生类覆盖password属性并添加属性。

class Base
{
    public virtual string password {get;set;}
}

class Derived : Base
{
    [JsIgnore]
    public override string password {get;set;}
}