当前位置: 首页 > 知识库问答 >
问题:

MVC5/API2自定义ActionFilterAttribute OnActionExecuting中的CreateErrorResponse

上官自明
2023-03-14

使用MVC4,我能够创建并注册一个全局操作过滤器,它将在操作执行之前检查模型状态,并在任何损坏发生之前返回序列化的

public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
    if (!actionContext.ModelState.IsValid)
    {
        actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
    }
}

null

public override void OnActionExecuting(ActionExecutingContext nActionExecutingContext)
{
    if (!nActionExecutingContext.Controller.ViewData.ModelState.IsValid)
    {
        nActionExecutingContext.Result = // Where is Request.CreateErrorResponse ?
    }
}

null

null

共有1个答案

万俟高峻
2023-03-14

必须

using System.Net.Http;

而不是

using System.Web.Http;

那么这就起作用了:

using System.Net;
using System.Net.Http;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;

public class ValidateModelStateAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        if (!actionContext.ModelState.IsValid)
        {
            actionContext.Response = actionContext.ControllerContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
        }
    }
}
 类似资料:
  • 在自定义arrayAdapter中实现自定义getFilter时遇到问题。实际上,我不知道如何实现它。尝试了各种代码,但仍然没有成功。这是我的自定义阵列适配器。 这是ListTO课程。 这是布局图。 这里的搜索关键字来自“inputSearch”编辑文本。 这是文本更改的侦听器。 谢谢

  • 我在mvc5中使用API2控制器,实现CRUD操作。在POST方法中,我有一个if语句,当if语句结果为false时返回BadRequest()。 这是IF语句我需要显示字符串错误消息 if(allowanceDto.MinValue) 这是ajax调用: 我的问题是,当IF语句为false时,如何使用ajax显示BadRequest的字符串错误。

  • 问题内容: 在上面的代码中,我有2个问题:1)。它具有编译错误:’UINavigationController!’ 没有名为“ pushViewController”的成员 但是在该类中,确实有一个pushViewController方法。 2)。我必须添加注释:@objc(SEPushNoAnimationSegue),否则,在情节提要中,它只能识别随机生成的名称,例如_tcxxxxSEPush

  • 我正在使用customLinkedLists的LinkedList,而我的AddFirst方法的实现遇到了一些问题。 方法如下, 问题是,每次调用它时,它都会正确地增加大小,但当我试图打印出值时,它会抛出一个空指针异常。我知道我设置头/尾指针的方式有问题,但我不知道它到底是什么。 编辑:基本上我有一个OuterList和一个自定义的LinkedList类。 在outer list类中,我有一个对象

  • 自定义TabBar,可以在任意一个tab右上角加上数字badge。 [Code4App.com]

  • 感谢SpanInjector和SpanExtractor,您可以自定义spans的创建和传播方式。 目前有两种在进程之间传递跟踪信息的内置方式: 通过Spring Integration 通过HTTP Span ids从Zipkin兼容(B3)头(Message或HTTP头)中提取,以启动或加入现有跟踪。跟踪信息被注入到任何出站请求中,所以下一跳可以提取它们。 与以前版本的Sleuth相比,重要的