zoukankan      html  css  js  c++  java
  • webapi输入验证过滤器ValidationActionFilter

    public class validationActionFilter:ActionFilterAttribute
        {
            public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
            {
                var modelState = actionContext.ModelState;
                if(!modelState.IsValid)
                {
                    dynamic errors = new JObject ( );
                    foreach(var key in modelState.Keys)
                    {
                        var state = modelState[key];
                        if(state.Errors.Any ( ))
                        {
                            errors[key] = state.Errors.First ( ).ErrorMessage;
                        }
                    }
                    actionContext.Response = new HttpResponseMessage ( HttpStatusCode.BadRequest )
                    {
                        Content = new StringContent ( Convert.ToString ( errors ) )
                    };
                }
    
            }
    
        }
    public class ValidationActionFilter : ActionFilterAttribute
        {
            public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
            {
                var modelState = actionContext.ModelState;
                if (!modelState.IsValid)
                {
                    ApiResult result = new ApiResult();
                    result.code = ApiResultCode.fail;
                    result.msg = "输入数据验证失败";
                    //找到出错的字段以及出错信息
                    var errorFieldsAndMsgs = modelState.Where(m => m.Value.Errors.Any())
                        .Select(x => new { x.Key, x.Value.Errors });
                    result.desc = string.Join(",", errorFieldsAndMsgs.SelectMany(p => p.Errors.Select(t => t.ErrorMessage)).ToArray());
    
                    actionContext.Response = new HttpResponseMessage(HttpStatusCode.BadRequest)
                    {
                        Content = new StringContent(JsonConvert.SerializeObject(result))
                    };
                }
    
            }
    public class ValidationActionFilter : ActionFilterAttribute
        {
            public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
            {
                var modelState = actionContext.ModelState;
                if (!modelState.IsValid)
                {
                    ApiResult result = new ApiResult();
                    result.code = ApiResultCode.fail;
                    result.msg = "输入数据验证失败";
                    //找到出错的字段以及出错信息
                    var errorFieldsAndMsgs = modelState.Where(m => m.Value.Errors.Any())
                        .Select(x => new { x.Key, x.Value.Errors });
                    result.desc = string.Join(",", errorFieldsAndMsgs.SelectMany(p => p.Errors.Select(t => t.ErrorMessage)).ToArray());
    
                    actionContext.Response = new HttpResponseMessage(HttpStatusCode.BadRequest)
                    {
                        Content = new StringContent(JsonConvert.SerializeObject(result))
                    };
                }
    
            }
  • 相关阅读:
    I2C总线驱动框架详解
    Allegro封装的制作
    轮询与中断 简单分析
    SMI#、SCI#信号在OS、BIOS、EC中的中断方式(Linux)
    var
    集合元素重复问题
    子类重写父类属性和方法
    内存(转)
    DesiredSize,RenderSize&& Width ,ActualWidth
    sql select(A.B)拼接
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5695693.html
Copyright © 2011-2022 走看看