我在最新的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的一个例子?
最佳答案 HttpResponseMessage< T>是版本测试版,它在版本发布中不再存在,请改用以下版本:
actionContext.Response = actionContext.Request
.CreateResponse(HttpStatusCode.BadRequest, errors);