在web api中找不到的属性

时间:2014-09-04 22:30:38

标签: asp.net-web-api

无法解析actionExecutedContext.Result中的Result属性。有什么想法吗? 这是我的代码。

using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Http.Filters;
using System.Net.Http;

public class ValidateFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
    {
        var modelState = actionExecutedContext.ActionContext.ModelState;
        if (!modelState.IsValid)
        {
            var errors = modelState
                .Where(s => s.Value.Errors.Count > 0)
                .Select(s => new KeyValuePair<string, string>(s.Key, s.Value.Errors.First().ErrorMessage))
                .ToArray();

            actionExecutedContext.Result = new HttpResponseMessage<KeyValuePair<string, string>[]>(errors, HttpStatusCode.BadRequest);
        }
        base.OnActionExecuted(actionExecutedContext);
    }
}

1 个答案:

答案 0 :(得分:0)

自Web API测试版以来,HttpActionExecutedContext没有Result属性,而是Response属性。

您可以为其分配HttpResponseMessage个实例。

参见框架source code here