更新了web api的验证示例

时间:2012-10-14 15:22:27

标签: c# .net asp.net-web-api

我在最新的mvc 4下载中尝试了web api的验证示例代码,我遇到了一些错误。有没有人有ValidationActionFilter类的更新示例。

这是原始代码

public class ValidationActionFilter : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(HttpActionContext context) 
    { 
        var modelState = context.ModelState; 
        if (!modelState.IsValid) 
        { 
            dynamic errors = new JsonObject(); 
            foreach (var key in modelState.Keys) 
            { 
                var state = modelState[key]; 
                if (state.Errors.Any()) 
                { 
                    errors[key] = state.Errors.First().ErrorMessage; 
                } 
            } 

            context.Response = new HttpResponseMessage<JsonValue>(errors, HttpStatusCode.BadRequest); 
        } 
    } 
}

我在HttpResponseMessage上收到错误

The non-generic type 'System.Net.Http.HttpResponseMessage' cannot be used with type arguments

看起来我需要添加一个Json引用,但是我应该使用JSON.net吗?使用Json.net的一个例子是什么?

1 个答案:

答案 0 :(得分:2)

HttpResponseMessage<T>来自版本测试版,版本发布中不再存在,请改用以下版本:

 actionContext.Response = actionContext.Request
                              .CreateResponse(HttpStatusCode.BadRequest, errors);