在一个控制器中交换两个视图

问题描述:

我有一个查询是:如何从一个控件一个调用两个不同的视图。 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"); 
//} 
+0

为什么不默认显示view1,并在JavaScript中使用'setInterval'在20秒后调用视图2? –

+0

我目前使用view1作为默认,现在如果我打电话view2。那么我将如何返回到view1。其次为什么我不能在控制器中定义Delaytime(e.e20秒)。 –

+0

创建两个定时器 - 一个在view1上将用户发送到view2,另一个在view2上将用户发送到view1.You can not do it in controller,because it's not a windows app –

添加该脚本在视图的顶部,并与您的控制器的名称取代“家”:

<script type="text/javascript"> 
    setInterval(function() 
    { 
     window.location = "@Url.Action("Show2","Home")" 
    }, 20000); 
</script>