我想获得当前页面的执行时间。我现在的办法是在controller的构造函数中获得一次时间,放在ViewData里,在View代码的最后把现在时间相减输出结果。但是我觉得这个时间不是MVC的一个完整的生命周期的时间,因为controller之前还有路由的注册等操作,View之后可能也有别的代码要执行完。。
怎么写才能比较合理的得到页面执行时间?

解决方案 »

  1.   

    1. RegisterRoutes 只在 Application_Start 里执行一次,可以忽略了
    2. Action方法的时间就是服务端响应时间 但 RenderBody 时间应该另外计算
      

  2.   

    对啊,求解怎么写我现在又改用了override Controller的OnResultExecuted方法获取,这个我感觉更贴近一点了。。
      

  3.   

    恩,你是用 ActionFilter 是吧。刚才看到这篇文章,不错的思路,直接利用 Global.asax 里的 OnBeginRequest 和 OnEndRequest 来记录。http://haacked.com/archive/2008/07/02/httpmodule-for-timing-requests.aspx
      

  4.   

    用 Filter 的,参考下文:http://bradwilson.typepad.com/blog/2010/07/aspnet-mvc-filters-and-statefulness.html
      

  5.   

    完美的解决办法是编写ISAPI。