【MVC 过滤器的应用】ASP.NET MVC 如何统计 Action 方法的执行时间

时间:2023-03-09 09:05:35
【MVC 过滤器的应用】ASP.NET MVC 如何统计 Action 方法的执行时间

代码如下:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MyPractise.Filters
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class ActionSpeedProfilerAttribute : FilterAttribute, IActionFilter
{
private Stopwatch timer;
public void OnActionExecuted(ActionExecutedContext filterContext)
{
timer.Stop();
if (filterContext.Exception == null)
{
string div = string.Format(@"
<div style='position:absolute;
left:0px; top:0px;
width:280px; height:20px;
text-align:center;
background-color:#000000; color:#FFFFFF'>
Action method took: {0} seconds
</div>",
timer.Elapsed.TotalSeconds.ToString("F6"));
filterContext.HttpContext.Response.Write(div);
}
} public void OnActionExecuting(ActionExecutingContext filterContext)
{
timer = Stopwatch.StartNew();
}
}
}

谢谢浏览!