我正在使用Web API构建REST API。我遇到的问题是JSON序列化程序不会拒绝未映射的字段。假设我有一个像这样的简单对象:
public class MyClass
{
public bool MyBool { get; set; }
public string MyString { get; set; }
}
我有一个简单的控制器,可以在请求正文中接受此类对象
public void Post(MyClass instace)
{
...
}
现在,我在请求正文中使用以下JSON将请求发布到此控制器的端点:
{“ MyBool”:true,“ MyString”:“有效”,“ InvalidField”:“无效”}
当前,控制器将静默接受此请求,将True映射到MyBool,将“ Valid”映射到MyString,同时忽略InvalidField。如何更改此设置,以便在出现无效字段时引发错误?
我相信Required
这不是您要查找的内容,因为您对请求中存在的其他字段感兴趣。Required
用于缺少的字段。您可以自己读取JSON并进行验证,但是对我来说这是很多工作。因此,我会注意绑定方面的工作。我只是写了一个小博客文章来回答这个问题。检查一下http://lbadri.wordpress.com/2014/01/28/detecting-extra-fields-in-asp-net-web-api-request/。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句