C# web api的更新验证示例

C# web api的更新验证示例,c#,.net,asp.net-web-api,C#,.net,Asp.net Web Api,我在最新的MVC4下载中尝试了web api的验证示例代码,但发现了一些错误。是否有人更新了ValidationActionFilter类的示例 这是原始代码 public class ValidationActionFilter : ActionFilterAttribute { public override void OnActionExecuting(HttpActionContext context) { var modelState = con

我在最新的MVC4下载中尝试了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); 
        } 
    } 
}
另外,看起来我需要添加一个Json引用,但我应该使用Json.net吗?使用Json.net?

HttpResponseMessage
的一个示例来自beta版,它在版本发布中不再存在,请改用以下内容:

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

您还知道Json.net的代码将如何更新,因为看起来他们删除了这个系统。Json@MonkeyBonkey:对于发布版本,
System.Json
不再使用,
Newtonsoft.Json
用于代替错误,我将使用什么来代替新的JsonObject()?是否只是new Dictionary(),json序列化程序将自动序列化流中其他地方的响应?@monkeybankey:啊,我知道了,你可以使用
JObject
@monkeybankey:记得使用Newtonsoft.json添加
。Linq
查看更多答案:查看此博客帖子:
 actionContext.Response = actionContext.Request
                              .CreateResponse(HttpStatusCode.BadRequest, errors);