如何创建一个计时器来计算 asp.net 中的预订时间?

How to create a timer for counting reservation time in asp.net?

我创建了一个酒店客房预订网站。假设一个想要预订房间的人有 30 分钟的时间来做这件事,30 分钟后网站将停止为他预订房间;在此预订期间,他将通过几个网页来填写信息。 有没有什么方法可以创建一个计时器,它可以在几个页面中计算 30 分钟?

当用户在提交页面后重新加载页面时,计时器总是会重新初始化,除非您有单页应用程序

另一种简单的方法是在用户开始填写表格时(或任何初始阶段)存储带有日期时间值的 cookie。你可以这样创建它,

// Set the cookie
HttpCookie cookie = new HttpCookie("date");
// Add the value
cookie["dateValue"] = DateTime.Now.ToString();
// Add the cookie
Response.Cookies.Add(cookie);

然后你可以检查这个 cookie 并且(在成功投射到 DateTime 对象之后)你可以检查用户是否在他的 30 分钟试用期内有时间或者他是否迟到。您可以使用此代码在服务器端获取 cookie,

// This check would minimize one error
if(Request.Cookies["data"]["dateValue"] != null) {
   var time = Convert.ToDateTime(Request.Cookies["data"]["dateValue"]);
} else {
   // Maybe cookie got removed.
}

通过这种方式,您可以在 ASP.NET 网络应用程序中设置此功能。