В ASP.NET MVC 3, как я могу использовать метод OnResultExecuting / OnresultExecuted для отслеживания времени загрузки страницы? - PullRequest
0 голосов
/ 15 июля 2011

Я поместил код 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));
    }

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Вместо этого создайте фильтр действий.Я вставил некоторый код в здесь .

Фильтры ActionFilter намного проще для повторного использования и могут быть реализованы глобально.

0 голосов
/ 16 июля 2011

Знаете ли вы о мини-профилировщике mvc - http://code.google.com/p/mvc-mini-profiler/

Это было написано Сэмом Шафраном, который разрабатывает этот самый сайт.

Звучит так, как будто это уже может сделать то, что вы пытаетесь достичь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...