2014-07-25 2 views
0

Ci-dessous le contrôleur et la vue de mon application du contrôleur m passant la différence de temps de début et de fin de durée et je veux accéder à cette durée pour voir la page afin que je puisse assigner la valeur `javascript minuterie et démarrer l'horloge que j'ai fait en utilisant viewbag mais im obtenir une valeur nulle im travailler sur l'examen en ligne et je veux commencer une minuterie comme compte à rebours lorsque l'utilisateur cliquez sur Démarrer dans ce que quelqu'un peut-il m'aider à créer un contrôle de minuterie en prenant la différence entre deux fois dans mvcMinuterie utilisant Javascript dans 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> 

au-dessus de mention sont le contrôleur et la vue de ma demande de commande m en passant la différence de temps de début et de fin tim e en durée et je veux accéder à cette durée pour voir la page afin que je puisse attribuer la valeur de la durée à javascript timer et commencer l'horloge je hv fait en utilisant viewbag mais im obtenir une valeur nulle im travailler sur l'examen en ligne et je veux commencer une minuterie le temps du compte à rebours lorsque l'utilisateur clique sur le démarrage en elle quelqu'un peut aider iM créer une minuterie en prenant la différence entre deux fois dans mvc

Je l'ai utilisé tout le Javascript est nécessaire mais m obtenir la valeur null sur ViewPage ViewBag

+0

ponctuation. S'il vous plaît. Peut-être mentionner que c'est ASP.NET MVC – Pinoniq

+0

oui c'est dans asp.net – user3876282

Répondre

0

Je voudrais sérieusement regarder SignalR pour cela au lieu de le faire en javascript. Vous pouvez faire en sorte que votre minuterie fonctionne sur le serveur lié à une connexion Web particulière au concentrateur SignalR, puis transmettre le signal SignalR Hub à votre méthode javascript.

Questions connexes