Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 仅在发送GET请求时使用JsonIgnore_.net_Asp.net Web Api - Fatal编程技术网

.net 仅在发送GET请求时使用JsonIgnore

.net 仅在发送GET请求时使用JsonIgnore,.net,asp.net-web-api,.net,Asp.net Web Api,我正在编写一个.NETWebAPI,但遇到了问题。我有一个支持CRUD操作的/Users端点。由于明显的原因,我不希望密码字段出现在响应中,但我确实希望能够发布到/Users并发送密码字段(在创建新用户时) 目前我正在使用[JsonIgnore],它在GET/Users的情况下实现了我想要的功能,但我遇到了以下错误: Validation failed for one or more entities. See 'EntityValidationErrors' property for more

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

目前我正在使用[JsonIgnore],它在GET/Users的情况下实现了我想要的功能,但我遇到了以下错误:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
当我尝试发布一个用户时。这是因为[JsonIgnore]标记导致密码字段未被发送。我怎样才能解决这个问题

这是我的模型:


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

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

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