Ich bin vertraut mit der Verwendung eines HttpModule zu Zeitanforderungen, aber diese Haken nicht wirklich in ASP.NET MVC-View-System. Kann dies getan werden, indem man irgendwo in global.asax einen Timer startet und dann in _layout.cshtml darauf zugreift?Wie können Sie Zeitanforderungen mit ASP.NET MVC?
3
A
Antwort
3
1) Sie können die Startzeit überprüfen und Endzeit einer Anfrage in Begin_Request und End_Request Ereignisse der Anwendungsklasse 2) Sie können ein benutzerdefiniertes HttpModule definieren 3) Sie können ein benutzerdefiniertes Attribut wie folgt definieren:
public class RequestTimerAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//Mark the Start Time
MarkTime("Start");
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
//Mark the Start Time
MarkTime("End");
}
void MarkTime(string EventName)
{
//Handle the logic here to log the time
}
}
1
Ich verwende die Initialize
Methode der Steuerung ein Flag in HttpContext.Items
zu setzen:
HttpContext.Items["StartTime"] = DateTime.Now;
Dann ist es aus Ihrer Sicht drucken, oder wo auch immer:
<%
// We only set this in DEBUG builds
var startTime = HttpContext.Current.Items["StartTime"] as DateTime?
if(startTime.HasValue)
{ %>
<%=(DateTime.Now - startTime.Value).TotalSeconds.ToString("0.00000")%> seconds
<%
}
%>
+0
@ downvoter Gibt es etwas falsch mit diesem Code? – kevingessner
Verwandte Themen
- 1. Können Sie JavaScript als eingebettete Ressourcen mit Asp.Net MVC verwenden?
- 2. Wie können Sie Abschnitte mit Standardinhalt in MVC 6 definieren?
- 3. Wenn Sie eine Site mit ASP.NET MVC steuern, können die Viewer den MVC-Code sehen?
- 4. Asp.Net MVC Themes, wie?
- 5. Datetime mit ASP.NET MVC
- 6. Wie können Benutzersteuerelemente in ASP.NET MVC am besten implementiert werden?
- 7. Können Standard .NET CMS-Systeme mit ASP.NET MVC kompatibel sein
- 8. PageMethods mit ASP.Net MVC
- 9. Verwenden Sie Jquery Select2 mit ASP.NET MVC
- 10. Wie implementieren Sie Paging in ASP.NET MVC?
- 11. Anspruchsberechtigt mit ASP.NET MVC
- 12. Senden Sie EMail mit asp.net mvc
- 13. KnockOut.js Mit Asp.net mvc
- 14. Wie können Ansichten in asp.net-mvc Komponententests generieren?
- 15. eventDrop mit ASP.NET MVC
- 16. Beziehungen mit ASP.NET MVC
- 17. ASP.NET MVC - Wie sicher umleiten?
- 18. -Test ASP.NET MVC Routen MVC Contrib mit
- 19. ASP.NET MVC Routen mit "Dateierweiterungen"
- 20. So simulieren Sie IsStartupScriptRegistered in ASP.NET MVC
- 21. Wie testen Sie die Berechtigung für Webseiten mit ASP.NET MVC?
- 22. Wie Sie mit ASP.NET MVC und ODBC 2.0 arbeiten
- 23. Wie Sie Daten in ASP.Net MVC mit AngularJS abrufen?
- 24. Datawarehousing mit ASP.NET MVC
- 25. Bildbearbeitung mit ASP.NET MVC
- 26. SOA mit asp.net MVC
- 27. SQLite mit ASP.NET MVC
- 28. Wie mit Paging in asp.net mvc umgehen?
- 29. asp.net ASPX-Seiten mit asp.net mvc Projekt
- 30. Wie Formularauthentifizierung mit asp.net mvc verwenden?
Interessanter Ansatz - wusste nicht über dieses Attribut. Können Sie HTML (dh die Ausführungszeit) in die aktuelle Antwort von OnResultsExecuted überschreiben? –
Habe das nicht versucht ... Sollte möglich sein, denke ich ... – Chandu
Der sauberste Weg, dies zu tun wäre, es ViewData in OnResultExecuting hinzuzufügen, so dass es von der Ansicht gerendert werden kann. Offensichtlich wird das die Renderzeit der Ansicht nicht einschließen, aber alles, was möglicherweise zeitaufwendig ist, sollte sowieso im Controller sein. –