2017-01-12 1 views
0

결제 창 클라이언트가 지불 버튼을 클릭하면 타이머를 시작하고 싶습니다. 지불 처리에 5 초가 넘는 시간이 걸리면 페이지로 리디렉션하고 싶습니다. 아래는 내가 생각할 수있는 것입니다.ASP.net에서 타이머 설정 mvc 웹 사이트

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public ActionResult SavePayment(PaymentFormMV data) 
     { 
      if (Session["startTime"] == null) 
      { 
       Session["startTime"] = DateTime.Now; 
      } 

      var ticksRemaining = DateTime.Now - (DateTime)Session["startTime"]; 
      int x = int.Parse(ticksRemaining.ToString()); // Format Unhandled exception 
      if(x == 5) 
      { 
       return RedirectToAction("Index", "Home"); 
      } 
      // Payment Logic Here to 3rd Party API 
      return View("PaymentConfirmation", returnData); 
} 

하지만 ticksRemaining을 계산할 때 예상대로 작동하지 않습니다. 나는 여기에 무엇인가가 필요합니까? 나는 새로운 개발을 안내 해주고 있습니다. 버튼 클릭과 현재 시간 사이의 시간 간격을보고 싶습니다. 5 초가 지나면 사용자를 새 페이지로 리디렉션하고 싶습니다.

+0

가 던지고 어떤 예외? 페이지에서 리디렉션을 요청하는 클라이언트에서이 작업을 수행해보십시오. 그러나 두 가지 솔루션 중 하나를 사용하면 장기 실행 작업 실행을 중단하지 않을 것입니다. 당신이 지금 설정 한 방식으로, 사용자는 아무것도하기 위해 버튼을 두 번 클릭해야 할 것입니다. – krillgar

+3

"예외가 발생했습니다"- 적어도 예외 메시지를 포함하면 유용 할 것이라고 생각합니까? – Igor

+0

@krillgar : 나는 배우려고 노력하는 초보자입니다. 클라이언트 측에서 더 잘 수행 할 수 있다면 저를 안내해 줄 수 있습니까? 그렇다면 모든 링크를 제공 할 수 있습니다. 그리고 코드를 편집했습니다. 외관상으로는, 나의 접근은 정확하지 않다. – Unbreakable

답변

2

클라이언트 측에서 구현하는 것이 훨씬 더 합리적입니다. 자바 스크립트를 사용할 수 있습니다. 예를 들어이 당신을 도울 수 있습니다

Page Redirect after X seconds wait using JavaScript

JQuery Redirect to URL after specified time

+0

이 코드를 스크립트 태그 아래의 cshtml 파일에 넣을까요? – Unbreakable

+0

예, 할 수 있지만 가장 좋은 방법은 새 javascript 파일을 만든 다음 cshtml 파일에서 참조하는 것입니다. – MacakM

+0

링크에서 페이지로드를 기반으로 모두 언급했습니다. 그러나 저를 위해 타이머는 단추 누르기에 시작해야한다. 또한 명백한 상태로 버튼 클릭을 MVC와 마찬가지로 정상적인 POST 작업을 수행하고 컨트롤러 기능을 누르기를 원할 것입니다. – Unbreakable

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