4

最新のMVC4ダウンロードでWebAPIの検証サンプルコードを試しましたが、エラーが発生します。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を使用したこの例?

4

1 に答える 1

2

HttpResponseMessage<T>バージョンベータ版であり、バージョンリリースには存在しません。代わりに、以下を使用してください。

 actionContext.Response = actionContext.Request
                              .CreateResponse(HttpStatusCode.BadRequest, errors);
于 2012-10-14T15:33:39.650 に答える