2016-08-23 9 views
0

次のクエリがあります。同じコントローラから2つの異なるビューを1つずつ呼び出す方法20秒後にViewを変更したい。すなわち(コードの下に表示Show2およびその逆で見るショースワップをスニペット)2つのビューが1つのコントローラでスワップ

//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

私は現在、view2を呼び出した場合、現在はview1をデフォルトとして使用しています。私はどのように戻ってview1に戻りますか?第二に、コントローラ自体に遅延時間(e.e20秒)を定義することができません。 –

+0

2つのタイマーを作成する - 1つはview2にユーザーを送るview1に、もう1つはview2にユーザーを送るためのものです。Windowsアプリケーションではないのでコントローラーではできません –

答えて

0

ビューの上部にこのスクリプトを追加し、コントローラの名前で「ホーム」を置き換えます

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