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