这是我的ApiController
中的POST操作。
public HttpResponseMessage Post(ViewModel model)
{
if (!ModelState.IsValid)
{
var ResponseMessage = new HttpResponseMessage(HttpStatusCode.XXXXXX
return ResponseMessage;
}
if (!_service.Create(model))
{
var ResponseMessage=new HttpResponseMessage(HttpStatusCode.NotAcceptable);
return ResponseMessage;
}
else
{
return new HttpResponseMessage(HttpStatusCode.Created);
}
}
可以通过这种方式启用服务器端模型验证吗?而且,我很确定如果一切正常,应该返回
Created
。但是,如果ModelState无效或发生某些错误,我应该返回哪种HttpStatusCode? 最佳答案
通常应为400-BadRequest
。NotAcceptable
是服务器无法满足Accept标头的情况。PreConditionFailed
是当缓存验证条件失败时。例如,如果且仅当ETag与请求中的值匹配时,PUT请求才需要更新。
或者,您可以发送自定义错误。由于与请求有关,因此您需要使用4xx数字:
return new HttpResponseMessage((HttpStatusCode) 499)
{
ReasonPhrase = "Validation failed"
};
关于asp.net-mvc-3 - 在ApiController中检查ModelState,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10708649/