我正在www.example.com MVC中开发一个拍卖网站Asp.net,我试图能够显示一个计时器,显示每件物品的拍卖还剩多少时间。我将一个物品列表与我的模型一起传递到我的cshtml页面,然后像这样迭代它们:
启动计时器的javascript函数:
function countdown(time) {
// Get todays date and time
var now = new Date().getTime();
// Find the distance between now an the count down date
var distance = time - now;
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Display the result in the element with id="timeLeft"
document.getElementById("timeLeft").innerHTML = days + "d " + hours + "h "
+ minutes + "m " + seconds + "s ";
}, 1000);
然后是Model的迭代器,调用带有项目结束日期的js函数
@foreach (var item in Model)
{
//code here
countdown(@item.EndDate)
<text id="timeLeft"></text>
}
我的脚本由<script src="~/Scripts/countdown.js" />
引用
我遇到的问题是如何用一个c# razor变量调用这个js函数。为一个项目做一些基本的事情,比如:
<body onload= "countdown('@item.EndDate')">
当我把我的razor变量放进去的时候,它会把我的函数灰化,我需要怎样把我的变量传递到我的js函数中呢?
EX:(单数型号项目)
第一节第一节第一节第一节第一次
4条答案
按热度按时间9nvpjoqh1#
尝试使用以下语法:
5m1hhzi42#
如果你想用javascript做一个定时器,我会使用
window.setInterval
函数,然后设置第二个参数为时间间隔。此函数
countdown
需要传递三个参数1.结束年份
1.结束月份
1.结束日
您可以在body标记上使用此选项
编辑
它在C# MVC上运行:https://dotnetfiddle.net/ERcwAb
w8ntj3qf3#
我想出了一个疯狂的方法来做我想做的事情,可能效率不高,可能是整个编码社区的罪恶,但它是这样的:
但是它仍然异步加载,项目将全部加载,然后时钟将在一秒钟后出现,所有内容将相应地移动。可能是由于我最初的问题,无法在加载时调用body。
zzwlnbp84#
这就是我在AspNetMVC 5中如何将变量
customFields
传递给按钮onAddRow()
的