Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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
mvc中使用Javascript的定时器_Javascript_Asp.net Mvc - Fatal编程技术网

mvc中使用Javascript的定时器

mvc中使用Javascript的定时器,javascript,asp.net-mvc,Javascript,Asp.net Mvc,下面是我的应用程序的控制器和视图,来自控制器m,通过持续时间中的开始时间和结束时间差,我想访问此持续时间以查看页面,这样我可以将持续时间值分配给“javascript定时器”,并启动我使用viewbag完成的时钟,但我得到空值我正在进行在线考试,我想在用户单击开始时启动计时器,如倒计时 在它中,任何人都可以通过在mvc中获取两次之间的差异来帮助我创建一个计时器控件吗 public ActionResult ApplyForTest(int Test_Id) {

下面是我的应用程序的控制器和视图,来自控制器m,通过持续时间中的开始时间和结束时间差,我想访问此持续时间以查看页面,这样我可以将持续时间值分配给“javascript定时器”,并启动我使用viewbag完成的时钟,但我得到空值我正在进行在线考试,我想在用户单击开始时启动计时器,如倒计时 在它中,任何人都可以通过在mvc中获取两次之间的差异来帮助我创建一个计时器控件吗

public ActionResult ApplyForTest(int Test_Id)
        {
            EAssessmentNew.BAL.StudentBal stuBal = new EAssessmentNew.BAL.StudentBal();
            ViewBag.TestId = Test_Id;
            DataTable testSchedule = stuBal.getTestDateTime(Test_Id);
            ViewBag.Sysdate = DateTime.Now.ToShortDateString();
            ViewBag.SysTime = DateTime.Now.ToShortTimeString();

            for (int i = 0; i < testSchedule.Rows.Count; i++)
            {
                Test Date_Time = new Test();
                ViewBag.Test_Date = testSchedule.Rows[i]["Test_Date"].ToString();
                ViewBag.Start_Time = testSchedule.Rows[i]["Start_Time"].ToString();
                ViewBag.End_Time = testSchedule.Rows[i]["End_Time"].ToString();

                DateTime strtTime = DateTime.Parse(ViewBag.Start_Time);
                DateTime endTime = DateTime.Parse(ViewBag.End_Time);

                TimeSpan duration = (endTime - strtTime);
                ViewBag.a = duration;

            }
            return View();
        }




          @model List<EAssessmentNew.Models.Question>



            @{
                ViewBag.Title = "TestStarted";
                Layout = "~/Views/StudentMaster.cshtml";
                TimeSpan t = ViewBag.a;

            }


                <script src="~/Scripts/jquery.js"></script>
                <script src="~/Scripts/jquery-1.5.1.js"></script>

                <script type="text/javascript">

                    var myVar = setInterval(myTimer, 1000);
                    var d = '@ViewBag.duration';
                    alert(d);
                    var testDate = '@ViewBag.Test_Date';
                    var startTime = '@ViewBag.Start_Time';
                    var EndTime = '@ViewBag.End_Time';

                    d.setHours(00, d, 59, 00);
                    function myTimer() {

                        if (d.getSeconds() <= 1)
                            d.setMinutes(d.getMinutes() - 1, 59, 00);

                        var h = d.getHours();
                        var m = d.getMinutes();
                        var s = d.getSeconds() - 1;


                        if (m == 0 && s == 1)
                            window.location.href = "showresults.aspx";
                        document.getElementById("lblCtime").innerHTML = h + ":" + m + ":"s;

                        d.setMinutes(m, s);
                        //setInterval(myTimer, 1000);
                    }
                </script>
public ActionResult ApplyForTest(int Test\u Id)
{
EAssessmentNew.BAL.StudentBal stuBal=新EAssessmentNew.BAL.StudentBal();
ViewBag.TestId=测试Id;
DataTable testSchedule=stuBal.getTestDateTime(测试Id);
ViewBag.Sysdate=DateTime.Now.ToSortDateString();
ViewBag.SysTime=DateTime.Now.ToShortTimeString();
for(int i=0;i如果(d.getSeconds()我会认真研究一下SignalR,而不是在javascript中这样做。你可以让你的计时器在服务器上运行,连接到SignalR hub的特定web连接,然后让SignalR hub向你的javascript方法广播运行的时钟。

标点符号。请提一下,这就是ASP.NET MVC