1

回答请检查您的 html 结构。

我有控制器和动作。

public class HomeController
{
   private Stopwatch controller_action;
   public HomeController()
   {
        controller_action = new Stopwatch();
        controller_action.Start();
   }
   public ActionResult Cars(KendoDataSourceRequest request)
   {
      controller_action.Stop();
      System.Diagnostics.Debug.WriteLine(controller_action.Elapsed);
   }
}

我从弹出窗口调用动作汽车。

我的操作:我打开弹出窗口并捕捉 100 毫秒我关闭弹出窗口并打开弹出窗口并捕捉 200 毫秒......

而这一次又一次地重复 100ms, 200, 300...

如何检查结束构造函数之后和开始操作之前发生了什么?

更新 我使用了 miniProfiler 我有结果:

在此处输入图像描述

这只是 Chrome 中的 IE8 和 IE9 都很好

4

3 回答 3

1

查看MiniProfiler。它非常容易集成到 MVC 中,并且会直接在应用程序的 UI 中提供有关您的操作和 MVC 在幕后执行的操作的重要信息。

您还可以使用它来添加自定义分析消息,这些消息可以在调试期间自动打开,但在生产代码中关闭。

于 2013-04-03T16:46:09.367 回答
0

好吧, Stopwatch.Stop() 不会重置 Elapsed 间隔。因此,如果您关闭弹出窗口并重新打开它,您似乎会获得与第一次 Start() 调用的当前时差。

也许您的方法应该如下所示:

public ActionResult Cars(KendoDataSourceRequest request)
   {
      controller_action.Stop();
      System.Diagnostics.Debug.WriteLine(controller_action.Elapsed);
      controller_action.Restart();
   }
于 2013-04-03T16:52:25.430 回答
0

.NET 的 MVC 框架不是开源的吗?您可以下载源代码并找出答案。

但是,它不断增加的原因可能是因为创建了一个控制器实例,并重新用于多个请求。没关系。

于 2013-04-03T16:43:15.083 回答