ASP.NET C# 倒计时到报价结束 - Razor 视图

Posted

技术标签:

【中文标题】ASP.NET C# 倒计时到报价结束 - Razor 视图【英文标题】:ASP.NET C# Countdown to end of offer - Razor View 【发布时间】:2022-01-05 03:24:00 【问题描述】:

我想在我的网络应用程序上设置一个“计时器”之类的东西来结束我的工作订单。如果我添加新工作,一切看起来都不错,例如: DateOfWorkCompletion 是明天,然后工作列表显示“在@TimeToEnd 日结束报价”,但是如果明天来了,我刷新页面文本仍然是一样的。为什么?我该怎么办?

var TimeToEnd = Math.Floor(decimal.Parse((DateTime.Today - work.DateOfWorkCompletion).Value.ToString("dd")));
    <h2>
        @html.ActionLink(work.Name, "Details", new  work.WorkId , new  style = "text-decoration: none; color:black;" )
            <span class="timeAlert">
                -
                @if (TimeToEnd > 1)
                
                    <span>end of offer in @TimeToEnd days/span> 
                
                else if (TimeToEnd == 0)
                 
                    <span class="text-danger">the offer ends today</span>
                
                else if (TimeToEnd == 1)
                
                    <span class="text-danger">end of offer in @TimeToEnd day</span>
                else
                 
                    <span class="text-danger">offer has expired</span>
                

【问题讨论】:

您需要将值存储在应用程序变量中,或者需要写入某个文件或数据库中,并在需要获取其值时从所需的源获取 【参考方案1】:

如果 work.DateOfWorkCompletion 是在未来,那么执行 DateTime.Today - work.DateOfWorkCompletion 将导致负值。然后您会陷入混乱,即在负时间跨度中 ToStringing 天数会导致正值

string 抛弃所有来回往复:一个日期减去另一个日期会产生一个 TimeSpan,而 TimeSpan 具有您可以检查的属性,这些属性可以显示有关两个日期之间的时间段长度的信息。

就个人而言,我建议也使用定时日期时间,例如明天下午 6 点优惠结束,今天下午 3 点,距离优惠结束还有 1 天 3 小时:

var tsTilExpiry = someFutureDate - DateTime.Now; //results in a TimeSpan

Console.WriteLine("Offer ends in: " + tsTilExpiry);
Console.WriteLine($"Offer ends in tsTilExpiry.TotalMinutes minutes");

Console.WriteLine($"Offer ends in tsTilExpiry.Days days, tsTilExpiry.Hours hours");


if(tsTilExpiry.TotalDays < 1)
  Console.WriteLine("Hurry! Offer finishes in less than a day");

【讨论】:

以上是关于ASP.NET C# 倒计时到报价结束 - Razor 视图的主要内容,如果未能解决你的问题,请参考以下文章

使用razor/asp.net mvc3生成静态html页面?

将信息导出到 xlsm 文件,C# VS asp.net

ASP.NET Razor——ASP.NET Razor - C#代码语法

无法启用约束。一行或多行包含违反非空、唯一或外键约束的值。 ASP.NET C#

在 c# 中编辑从 asp.net 上传的文件的 mp3

结束会话后 ASP.NET 不会自动重定向到 defaultURL