加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Web Api – 如何直接从OnActionExecuting过滤器停止W

发布时间:2020-12-15 23:03:33 所属栏目:asp.Net 来源:网络整理
导读:我有一个预先操作的web api钩子,它将检查ModelState.IsValid.如果ModelState无效,我不想执行该操作,并且立即返回我的消息.我该怎么做? public class ValidateModelStateAttribute : ActionFilterAttribute{ public override void OnActionExecuting(System.
我有一个预先操作的web api钩子,它将检查ModelState.IsValid.如果ModelState无效,我不想执行该操作,并且立即返回我的消息.我该怎么做?
public class ValidateModelStateAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext) {
        if (!actionContext.ModelState.IsValid)
        {
            var msg = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest,actionContext.ModelState);
            // Now What?
        }
        base.OnActionExecuting(actionContext);
    }
}

解决方法

设置Response.Result.如果结果不为空,则不会执行该操作.确切的语法正在转义我,但它是一样简单
if(actionContext.ModelState.IsValid == false)
{
       var response = actionContext.Request.CreateErrorResponse(...);
       actionContext.Response = response;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读