在一个模型类中,我有成员DateTime TimeExpired。如何在时间到期后自动调用某些操作方法?当时间到期时,我需要做一些计算并将它们存储在数据库中。 e.q.该时间段可以是一天,一个月等。
答案 0 :(得分:1)
DateTime TimeExpired
不适合使用JavaScript。
1)我希望这个日期是用Utc设置的,比如:
model.TimeExpired = DateTime.UtcNow.AddMinutes(10);
否则你在客户端会遇到问题。我强烈建议删除此代码并将其重写为
DateTimeOffset TimeExpiredUtc
2)当您在客户端上有UTC日期时,您可以使用moment.js库来解析时间并设置超时:
// get number of milliseconds elapsed since 1 January 1970 00:00:00 UTC
var now = moment().utc().valueOf();
// parse string object and get number of milliseconds
var when = moment(TimeExpiredUtc).valueOf();
// calculate the difference
var timeout = when - now;
setTimeout(function() {
// place your ajax code to call asp.net mvc action here
}, timeout);
我不确定上面的代码是否正确,但你明白了。
3)请记住,如果客户端将关闭选项卡,则不会调用此方法。我希望你没关系。因为如果不是,你需要完全不同的方法。