我正在使用 asp.net web api,我不知道我是否做错了什么,但由于某种原因,我发现使用 DataAnnotations 来验证 WebApi 与 MVC 的难度要大得多。
例如,如果我想在非字符串上使用所需的验证器,我必须使用带有 IsRequired 的 DataContract,我发现这会增加混乱。
我还发现,如果数据注释无法验证我真的没有收到错误消息(RestSharp 认为一切都很好)。
我想知道人们是否在 WebApi 中使用 DataAnnotations 以外的任何东西?我知道在 MVC 中有适用于 .net 的 Fluent Validation,但不确定它是否适用于 WebApi。
编辑
根据评论中的链接,我有点困惑。
在第一部分他们有这个
if (ModelState.IsValid)
{
// Do something with the product (not shown).
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
我认为 Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
会将所有模型状态错误发回。
但后来它去了
处理验证错误
验证失败时,Web API 不会自动向客户端返回错误。由控制器操作来检查模型状态并做出适当的响应。
我对上面的行感到困惑,就像我说我认为 CreateErrorResponse 正在处理它一样。