Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MVC定时器动作_Javascript_Jquery_Asp.net Mvc_Timer - Fatal编程技术网

Javascript MVC定时器动作

Javascript MVC定时器动作,javascript,jquery,asp.net-mvc,timer,Javascript,Jquery,Asp.net Mvc,Timer,我正在尝试创建一个15分钟的计时器,当用户单击按钮“签出”或锁定案例时,它会启动一个计时器,在15分钟内运行一个操作来翻转数据库中的布尔开关,在15分钟后再次解锁该案例。我假设这需要在我的服务器端代码上完成,而不是在Javascript中,因为如果有人离开页面,脚本将无法运行。我希望我能在我的动作方法中插入一些可以做到这一点的东西。我已经研究过了,但还没有找到一个明确的答案。任何帮助都将不胜感激 using (Html.BeginForm("CheckoutCase", "Case"))

我正在尝试创建一个15分钟的计时器,当用户单击按钮“签出”或锁定案例时,它会启动一个计时器,在15分钟内运行一个操作来翻转数据库中的布尔开关,在15分钟后再次解锁该案例。我假设这需要在我的服务器端代码上完成,而不是在Javascript中,因为如果有人离开页面,脚本将无法运行。我希望我能在我的动作方法中插入一些可以做到这一点的东西。我已经研究过了,但还没有找到一个明确的答案。任何帮助都将不胜感激

 using (Html.BeginForm("CheckoutCase", "Case"))
                {
                    @Html.HiddenFor(x => x.ID)
                    <input type="submit" value="Checkout" name="submitAction" class="btn btn-block alert-success"/>
                }

假设
currentCase.locket\u TS
保存
DateTime
,通过该日期时间
currentCase
被标记为已锁定,并且当一个案例被锁定时,它对所有用户都被锁定,为什么不使用
DateTime.Now
currentCase.locket\r>检查
之间的运行时间(以分钟为单位)


如果一个案例被锁定15分钟,它是否对所有用户都被锁定?这是正确的。有一个索引页,用户无法单击该链接访问该详细信息页。感谢您的帮助。我很确定我理解你在这里做什么,但它不喜欢.TotalMinutes'的格式。我查看了MSDN,没有发现任何名称空间或任何遗漏的内容。你知道什么会导致这个错误吗?再次感谢。这是错误1“System.Nullable”不包含“TotalMinutes”的定义,并且找不到接受“System.Nullable”类型的第一个参数的扩展方法“TotalMinutes”(是否缺少using指令或程序集引用?)是
currentCase.Lockout\TS
DateTime
还是
DateTime?
(可为空?)如果它可为空,则必须传入它的值(
currentCase.Lockout\TS.value
)。要验证该值是否为空,您可以首先检查
currentCase.Lockout\u TS.HasValue
是否返回
true
,如果返回,您可以安全地使用
currentCase.Lockout\t.value
[HttpPost]
    public ActionResult CheckoutCase(int id)
    {
        Case currentCase = db.Cases.Find(id);

        currentCase.LockCase = true;
        currentCase.Lockout_TS = DateTime.Now;
        db.SaveChanges();

        string url = this.Request.UrlReferrer.AbsolutePath;
        return Redirect(url);

    }
//if currentCase is locked...
if (currentCase.LockCase)
{
    //...check if it's been more than 15 minutes since currentCase was locked
    bool shouldUnlock = (DateTime.Now - currentCase.Lockout_TS).TotalMinutes > 15;
    //if yes, then unlock it
    if (shouldUnlock)
    {
        currentCase.LockCase = false;
        //persist the changes and proceed accordingly 
    }
    //if we've reached this point, shouldUnlock was false _
    //which means that currentCase shouldn't be unlocked yet _
    //so proceed accordingly        
}    
else
{
    //currentCase is not locked, proceed accordingly
}