我在我的控制器中放入OnResultExecuting / OnResultExecuted代码并在web.config中启用了跟踪,但是控制器的任何页面上都没有显示有关跟踪信息的内容(我刚刚获得了原始页面,附加了trace.axd没有工作要么!)
启用跟踪的web.config:
<system.web><trace enabled="true" pageOutput="true" requestLimit="40" localOnly="false"/></system.web>
OnResultExecuting / OnResultExecuted:
protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
string controller = filterContext.RouteData.Values["controller"].ToString();
string action = filterContext.RouteData.Values["action"].ToString();
start_time = DateTime.Now;
System.Diagnostics.Trace.Write(string.Format("Start '{0}/{1}' on: {2}", controller, action, start_time));
}
protected override void OnResultExecuted(ResultExecutedContext filterContext)
{
string controller = filterContext.RouteData.Values["controller"].ToString();
string action = filterContext.RouteData.Values["action"].ToString();
var elapsed_time = DateTime.Now - start_time;
System.Diagnostics.Trace.Write(string.Format("Start '{0}/{1}' on: {2}", controller, action, elapsed_time));
}
答案 0 :(得分:1)
改为使用actionfilter。我在here上粘贴了一些代码。
ActionFilters更易于重用,可以全局实施。
答案 1 :(得分:0)
你知道mvc mini profiler - http://code.google.com/p/mvc-mini-profiler/
吗?这是由sam saffron撰写的,他开发了这个网站。
听起来它可能已经做了你想要实现的目标