25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 lines
1.7 KiB

  1. using Learun.Util;
  2. using System.Web.Mvc;
  3. namespace Learun.Application.Web
  4. {
  5. /// <summary>
  6. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  7. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  8. /// 创建人:陈彬彬
  9. /// 日 期:2017.03.08
  10. /// 描 述:控制器执行后执行
  11. /// </summary>
  12. public class ResultFillters : FilterAttribute, IResultFilter
  13. {
  14. /// <summary>
  15. /// 执行完action后跳转后执行
  16. /// </summary>
  17. /// <param name="filterContext"></param>
  18. public void OnResultExecuted(ResultExecutedContext filterContext)
  19. {
  20. if(filterContext.Result is ViewResult ){// 如果返回结果是视图
  21. var viewResult = (ViewResult)filterContext.Result;
  22. string html = string.Empty;
  23. IView view = ViewEngines.Engines.FindView(filterContext, viewResult.ViewName, string.Empty).View;
  24. using (System.IO.StringWriter sw = new System.IO.StringWriter())
  25. {
  26. ViewContext vc = new ViewContext(filterContext, view, viewResult.ViewData, viewResult.TempData, sw);
  27. vc.View.Render(vc, sw);
  28. html = sw.ToString();
  29. }
  30. ContentResult Content = new ContentResult();
  31. Content.Content = html;
  32. filterContext.Result = Content;
  33. }
  34. }
  35. /// <summary>
  36. /// 执行完action后跳转前执行
  37. /// </summary>
  38. /// <param name="filterContext"></param>
  39. public void OnResultExecuting(ResultExecutingContext filterContext)
  40. {
  41. }
  42. }
  43. }