代码之家  ›  专栏  ›  技术社区  ›  zsharp

如何从action属性返回json对象?

  •  10
  • zsharp  · 技术社区  · 14 年前

    重写onActionExecuting时,如何返回JSON结果而不传递给Action?

    2 回复  |  直到 6 年前
        1
  •  12
  •   womp    14 年前
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
       if (/* whatever */)
       {
          var result = new JsonResult();
          result.Data = /* json data */;
          filterContext.Result = result;
          return;
       }
    
       base.OnActionExecuting(filterContext);
       return;
    }
    
        2
  •  0
  •   mulllhausen    6 年前

    我觉得它很有用 Json.NET 生成json输出。这有很多优点,例如json属性可以在某些条件下隐藏。

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (/* whatever */)
        {
            var result = new ResultModel(); // your json model
            ContentResult content = new ContentResult();
            content.ContentType = "application/json";
            content.Content = JsonConvert.SerializeObject(result);
            filterContext.Result = content;
            base.OnActionExecuting(filterContext);
        }
    }