[英]Set timer in ASP.net mvc website
在付款窗口中當客戶單擊付款按鈕時,我想啟動一個計時器。 如果付款處理花費的時間超過了5秒鍾(例如5秒),我想重定向到頁面。 以下是我能想到的。
[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秒,我想將用戶重定向到新頁面。
TimeSpan ticksRemaining = DateTime.Now - (DateTime)Session["startTime"];
int x = ticksRemaining.TotalSeconds;
在控制器中只需使用下面的東西
public ActionResult YourcurrentAction()
{
TempData["msg"] = "Your desire message here";
return RedirectToAction("Action_Which_You_Gonna_Redirect_To", "YourControlName");
}
現在在重定向操作中使用以下代碼
<center> <h2> @TempData["msg"].ToString() </h2> </center>
@TempData.Remove("msg")
<script type="text/javascript">
window.setTimeout(function () {
window.location.href = "Your_Desire_Link_To_Redirect";
}, 5000);
</script>
如果只需要客戶端,請使用我的代碼第二部分。 其他明智的選擇是兩者都用,但是需要的方式。
順便說一句,請記住,如果要在不同動作之間移動,則必須使用TempData來存儲示例中的message等值。 並記住將其刪除以釋放使用后的內存。 否則,請使用ViewBag。
希望對您有幫助,蓋達爾;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.