20

wep api actionfilter から json オブジェクトを返したいです。どうすればこれを達成できますか?

アクションからオブジェクトを返すことはできますが、何らかの条件で actionfilter からデータを返す必要があります。

前もって感謝します。


編集: 1 次のようにコードを変更すると、ブラウザーはまだ応答なしでロードされ、タイムアウト エラーで終了します。

  public class ValidationActionFilter : ActionFilterAttribute
{

    public override void OnActionExecuting(HttpActionContext actionContext)
    {


        var modelState = actionContext.ModelState;
        if (!modelState.IsValid)
        {
            List<string> arr = new List<string>();
            foreach (var key in modelState.Keys)
            {
                var state = modelState[key];
                if (state.Errors.Any())
                {
                    string er = state.Errors.First().ErrorMessage;
                    if (!string.IsNullOrEmpty(er))
                    {
                        arr.Add(er);
                    }
                }
            }               

           var output =  new Result() { Status = Status.Error.ToString(), Data = null, Message = arr };
            actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest, output, actionContext.ControllerContext.Configuration.Formatters.JsonFormatter);
        }     


    }
}
4

3 に答える 3