如何制作和ASP操作过滤器返回201的状态代码?

时间:2015-09-22 00:48:09

标签: asp.net asp.net-mvc

我有这个动作过滤器:

public class ValidateModelStateAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext actionContext)
    {
        if (!actionContext.ModelState.IsValid)
        {
            actionContext.Result = new BadRequestObjectResult(actionContext.ModelState);
        }
    }
}

但我的前端代码看到的方式与它看到与服务器的连接丢失的方式相同。

如何才能使其返回BadRequestObjectResult,而不是返回状态代码201?

1 个答案:

答案 0 :(得分:0)

你可以抛出这样的例外:

if (!actionContext.ModelState.IsValid)
{
    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Created));
}

这将立即停止请求并将201返回给客户端。