C# 将x-www-form-URLX的Web API MediaTypeFormatter编码为DefaultValue属性
假设我有一个模型,看起来像:C# 将x-www-form-URLX的Web API MediaTypeFormatter编码为DefaultValue属性,c#,asp.net-web-api,mediatypeformatter,C#,Asp.net Web Api,Mediatypeformatter,假设我有一个模型,看起来像: public class ToggleableResource { [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] [DefaultValue(true)] public bool Enabled { get; set; } public string Value { get; set; } } public class FormatterD
public class ToggleableResource
{
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
[DefaultValue(true)]
public bool Enabled { get; set; }
public string Value { get; set; }
}
public class FormatterDefaultsController : ApiController
{
public ToggleableResource Post([FromBody] ToggleableResource resource)
{
return resource;
}
}
{
"Enabled": true,
"Value": "some resource state"
}
我有一个控制器,看起来像:
public class ToggleableResource
{
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
[DefaultValue(true)]
public bool Enabled { get; set; }
public string Value { get; set; }
}
public class FormatterDefaultsController : ApiController
{
public ToggleableResource Post([FromBody] ToggleableResource resource)
{
return resource;
}
}
{
"Enabled": true,
"Value": "some resource state"
}
如果我向/api/formatterDefaults/
提交POST
,内容类型为应用程序/json
,正文为:
{ "Value": "some resource state" }
value=some+resource+state
我得到的值如下所示:
public class ToggleableResource
{
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
[DefaultValue(true)]
public bool Enabled { get; set; }
public string Value { get; set; }
}
public class FormatterDefaultsController : ApiController
{
public ToggleableResource Post([FromBody] ToggleableResource resource)
{
return resource;
}
}
{
"Enabled": true,
"Value": "some resource state"
}
这表明已启用
正在从DefaultValue
属性获取true
。然而
如果我再次向
/api/formatterDefaults/
提交帖子,但内容类型为:application/x-www-form-urlencoded
,正文为:
{ "Value": "some resource state" }
value=some+resource+state
我得到的值是:
{
"Enabled": false,
"Value": "some resource state"
}
当请求正文中省略了DefaultValue
属性时,我有没有办法让(或任何类负责的)遵守该属性并将Enabled
设置为true