【发布时间】:2019-10-03 12:17:53
【问题描述】:
我正在使用 ASP.NET 核心 C# web api,我需要在其中找到并防止请求正文中的过度发布属性。
例如:
类:
public class MyClass
{
public string Name { get; set; }
public string Department { get; set; }
}
我的控制器:
[HttpPost()]
public async Task<IActionResult> Post([FromBody]MyClass myClass )
{
...
return something..
}
我的请求正文:
{
"Name" : "Mage",
"Department" : "IT"
"TotalMarks": "445"
}
在这里,我传递了不在模型“MyClass”中的“TotalMarks”属性。在这种情况下,JSON 格式化程序会简单地忽略此值。 (XML 格式化程序也是如此。)
但我想停止并返回模型验证错误,当 API 请求中传递了一些属性但那些不是实际模型时。那么是否有任何通用的解决方案来支持所有模型。
【问题讨论】:
-
This Q&A 状态,可以设置Json.net序列化器的
MissingMemberHandling。但是我不确定 ASP.NET 使用哪个 Json 反序列化器,也不确定如何(或者如果可以)设置它
标签: c# asp.net-core asp.net-web-api2 model-validation