以下是我的应用程序的控制器和视图,从控制器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>
以上提到的控制器和我的应用程序的视图来自控制器m传递开始时间和结束时间的持续时间的差异,我想访问此持续时间来查看页面,所以我可以将持续时间值分配给`javascript计时器并启动时钟我已经完成使用viewbag但我得到空值我工作在线检查,我想启动计时器像倒计时时用户点击开始 在任何人都可以通过在mvc
中取两次之间的差异来帮助我创建一个计时器控件我已经使用了所有必需的javascript但是在viewpage viewbag上获得了null值
答案 0 :(得分:0)
我会认真看看SignalR,而不是在javascript中这样做。您可以让服务器在与SignalR集线器的特定Web连接相关联的服务器上运行,然后让SignalR Hub向您的javascript方法广播正在运行的时钟。