2017-01-12 5 views
0

Im Zahlungsfenster Wenn Client auf Zahlung Schaltfläche klickt, möchte ich einen Timer starten. Und wenn die Zahlungsverarbeitung mehr als 5 Sekunden dauert, möchte ich auf eine Seite umleiten. Unten ist was ich mir vorstellen kann.Setzen Sie Timer in ASP.net mvc Website

Aber es funktioniert nicht, wie ich erwarte, wenn ich TicksRemaining errechne. Brauche ich hier etwas oder etwas? Ich bin neu in der Entwicklung, bitte führe mich. Ich möchte nur die Zeitdauer zwischen dem Klicken auf die Schaltfläche und der aktuellen Uhrzeit sehen. Wenn es 5 Sekunden überschreitet, möchte ich den Benutzer auf eine neue Seite umleiten.

+0

Welche Exception wirft es? Warum nicht als etwas auf dem Client, wo die Seite eine Weiterleitung anfordert? Bei beiden Lösungen stoppen Sie jedoch nicht die Ausführung von Aufgaben mit langer Laufzeit. So wie Sie es jetzt eingerichtet haben, müsste der Benutzer zweimal auf die Schaltfläche klicken, damit etwas funktioniert. – krillgar

+3

"Ich bekomme eine Ausnahme" - denken Sie, dass es sinnvoll wäre, mindestens eine Ausnahmebedingungsnachricht in Ihre Frage aufzunehmen? – Igor

+0

@krillgar: Ich bin Anfänger, der versucht zu lernen. Können Sie mir sagen, ob es besser ist, es auf Kundenseite zu tun? Wenn ja, können Sie einen Link angeben. Und ich habe meinen Code bearbeitet. Offensichtlich ist meine Vorgehensweise nicht korrekt. – Unbreakable

Antwort

2

Es ist viel vernünftiger, dies auf der Client-Seite zu implementieren. Sie können JavaScript verwenden. Zum Beispiel könnte dies Ihnen helfen:

Page Redirect after X seconds wait using JavaScript

JQuery Redirect to URL after specified time

+0

Soll ich diesen Code in meine cshtml-Datei unter dem Skript-Tag einfügen? – Unbreakable

+0

Ja, Sie können, aber am besten ist es, neue Javascript-Datei zu machen und dann verweisen Sie in der Datei cshtml – MacakM

+0

In dem Link, den Sie erwähnt haben, alles basiert auf dem Laden der Seite. Aber für mich sollte der Timer auf Knopfdruck starten. Um das Offensichtliche zu sagen, würde ich auch gerne den Button klicken, um seinen normalen POST-Vorgang genau wie MVC auszuführen und die Controller-Funktion zu drücken. – Unbreakable

1
TimeSpan ticksRemaining = DateTime.Now - (DateTime)Session["startTime"]; 
int x = ticksRemaining.TotalSeconds;