2012-11-27 27 views
0

string message = string.Empty;如何返回Json結果+ Web API +驗證模型+ actionfilters + OnActionExecuting方法

公共覆蓋無效OnActionExecuting(HttpActionContext ActionContext中)

{

變種的ModelState = actionContext.ModelState;

如果(modelState.IsValid!)

actionContext.Response = actionContext.Request .CreateErrorResponse(HttpStatusCode.BadRequest,ModelState中);

的foreach(在modelState.Keys VAR鍵)

{

變種狀態=的ModelState [鍵]。

如果(state.Errors.Any())

{

消息=消息+ state.Errors.First()的ErrorMessage。

}

}

}

}

在這裏,我想與Jsonresult返回消息變量,請幫我就可以了。

回答

0

試試這個

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); 
     } 
    } 

從客戶端AJAX請求,誤差,得到responseText的處理驗證錯誤消息。

你可能想根據你正在嘗試做的事情選擇一個HttpStatusCode,因爲