必需属性的DataAnnotation - 为什么asp.net webapi需要它?

时间:2013-05-22 22:36:44

标签: asp.net-web-api data-annotations datacontract

我通读了这些帖子

DataAnnotation for Required property

http://forums.asp.net/t/1835627.aspx/1

我理解它与xml有关,而不支持required,但我不明白这是一个问题。

我有一个View Model Required属性超过Guid,这就是造成问题的原因。由于requestREST,我只是不知道xml因素如何影响因此xml在哪里引起这个问题。

1 个答案:

答案 0 :(得分:1)

验证程序已添加为安全措施,因为默认情况下所有Web API都接受XML。并且因为XML格式化程序不会为缺少的必需成员引发模型状态错误,所以最终可能会出现缺少必需成员且模型状态有效的情况。

话虽如此,这种行为造成了比它的价值更多的麻烦。因此它在当前的夜间构建中消失了,并且它将不会出现在下一版本的Web API中。在此期间,您可以使用以下行禁用它:

config.Services.RemoveAll(typeof(System.Web.Http.Validation.ModelValidatorProvider),v => v is InvalidModelValidatorProvider);