小编Kum*_* Lc的帖子

Asp.net Web API - 从actionfilter返回数据

我想从wep api actionfilter返回一个json对象.我怎样才能做到这一点?

我可以从操作返回对象,但我需要在某些条件下从actionfilter返回一些数据.

提前致谢.


编辑:1当我更改如下代码时,浏览器仍然加载没有任何响应,并以超时错误结束.

  public class ValidationActionFilter : ActionFilterAttribute
{

    public override void OnActionExecuting(HttpActionContext actionContext)
    {


        var modelState = actionContext.ModelState;
        if (!modelState.IsValid)
        {
            List<string> arr = new List<string>();
            foreach (var key in modelState.Keys)
            {
                var state = modelState[key];
                if (state.Errors.Any())
                {
                    string er = state.Errors.First().ErrorMessage;
                    if (!string.IsNullOrEmpty(er))
                    {
                        arr.Add(er);
                    }
                }
            }               

           var output =  new Result() { Status = Status.Error.ToString(), Data = null, Message = arr };
            actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest, output, actionContext.ControllerContext.Configuration.Formatters.JsonFormatter);
        }     


    }
}
Run Code Online (Sandbox Code Playgroud)

c# action-filter asp.net-web-api

15
推荐指数
1
解决办法
2万
查看次数

标签 统计

action-filter ×1

asp.net-web-api ×1

c# ×1