在一个控制器中交换两个视图
问题描述:
我有一个查询是:如何从一个控件一个调用两个不同的视图。 20秒后,我希望我的视图发生变化。即(在下面的代码与景观Show2反之亦然摘录视图显示掉期)在一个控制器中交换两个视图
//public ActionResult Index()
//{
// return View(dc.ptcl.ToList());
//}
public ActionResult Create()
{
return View();
}
public ActionResult Show()
{
Query q = new Query();
DBConnection.Open();
string myQuery = q.getQuery();
OdbcCommand cmd = DBConnection.CreateCommand();
cmd.CommandText = myQuery;
OdbcDataReader DbReader = cmd.ExecuteReader();
DbReader.Read();
int i = DbReader.FieldCount;
// string dummyResult = DbReader["LoggedInAgents"].ToString();
// String fName = DbReader.GetName(1);
String fName = DbReader.GetString(2);
// ViewBag.Name = dummyResult;
ViewBag.City = fName;
ViewBag.Age = ViewBag.Age;
ViewBag.Time = DateTime.Now.ToString("h:mm:ss tt");
ViewBag.viewName = 0;
DbReader.Close();
cmd.Dispose();
DBConnection.Close();
Response.AddHeader("Refresh", "5");
//int turnValue = 0;
//if (turnValue == 0)
//{
// turnValue = 1;
// return RedirectToAction("Show2", "Driver");
//}
// System.Threading.Thread.Sleep(5000);
return View();
}
public ActionResult Show2()
{
ViewBag.loggedInAgents = "Lahore";
ViewBag.onCalls = "Lahore";
ViewBag.agentsInReady = "Lahore";
ViewBag.agentsInNotReady = "Lahore";
ViewBag.agentsInWrapUp = "Lahore";
ViewBag.reservedAgents = "Lahore";
ViewBag.callsOffered = "Lahore";
ViewBag.callsAnswered = "Lahore";
ViewBag.callsAbandoned = "Lahore";
ViewBag.callsInQueue = "Lahore";
ViewBag.longestTalkDuration = "Lahore";
ViewBag.abandoned = "Lahore";
ViewBag.serviceLevel = "Lahore";
ViewBag.maxTimeInQueue = DateTime.Now.ToString("h:mm:ss tt");
return View();
}
// POST: /Service/Create
//[HttpPost]
//[ValidateAntiForgeryToken]
//public ActionResult Create([Bind(Include = "id,CustomerName,Age")] PtclData service)
//{
// if (ModelState.IsValid)
// {
// dc.ptcl.Add(service);
// dc.SaveChanges();
// }
// return RedirectToAction("Index");
//}
答
添加该脚本在视图的顶部,并与您的控制器的名称取代“家”:
<script type="text/javascript">
setInterval(function()
{
window.location = "@Url.Action("Show2","Home")"
}, 20000);
</script>
为什么不默认显示view1,并在JavaScript中使用'setInterval'在20秒后调用视图2? –
我目前使用view1作为默认,现在如果我打电话view2。那么我将如何返回到view1。其次为什么我不能在控制器中定义Delaytime(e.e20秒)。 –
创建两个定时器 - 一个在view1上将用户发送到view2,另一个在view2上将用户发送到view1.You can not do it in controller,because it's not a windows app –