Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api 如何返回Json结果+;Web api+;验证模型+;actionfilters+;OnAction执行方法_Asp.net Web Api_Action Filter_Jsonresult - Fatal编程技术网

Asp.net web api 如何返回Json结果+;Web api+;验证模型+;actionfilters+;OnAction执行方法

Asp.net web api 如何返回Json结果+;Web api+;验证模型+;actionfilters+;OnAction执行方法,asp.net-web-api,action-filter,jsonresult,Asp.net Web Api,Action Filter,Jsonresult,在这里,我想返回带有Jsonresult的消息变量,请帮助我。试试这个 string message = string.Empty; public override void OnActionExecuting(HttpActionContext actionContext) { var modelState = actionContext.ModelState; if (!modelState.IsValid) actionContext.Response

在这里,我想返回带有Jsonresult的消息变量,请帮助我。试试这个

string message = string.Empty;

public override void OnActionExecuting(HttpActionContext actionContext)
{
    var modelState = actionContext.ModelState;

    if (!modelState.IsValid)
        actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, modelState);

    foreach (var key in modelState.Keys)
    {
        var state = modelState[key];

        if (state.Errors.Any())
        {
            message = message + state.Errors.First().ErrorMessage;
        }
    }
}
public override void OnActionExecuting(HttpActionContext)
{
var modelState=context.modelState;
如果(!modelState.IsValid)
{
var errors=newjobject();
foreach(modelState.Keys中的var键)
{
var state=modelState[key];
if(state.Errors.Any())
{
errors[key]=state.errors.First().ErrorMessage;
}
}
context.Response=context.Request.CreateResponse(HttpStatusCode.BadRequest,错误);
}
}
在出现错误时,从客户机ajax请求获取responseText以处理验证错误消息

由于

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

            context.Response = context.Request.CreateResponse<JObject>(HttpStatusCode.BadRequest, errors);
        }
    }