2017-01-29 4 views
1

ずに別のアクションからのアクションはこれが私のコントローラクラスの一部コールreturn文

if (ds.Tables.Count > 1) 
      { 
       if (ds.Tables[0].Rows.Count > 0) 
       { 

        dt = ds.Tables[0]; 
        dr = dt.Rows[0]; 
        TempData["AgentId"] = dr[0].ToString(); 
        TempData["AgentCode"] = dr[1].ToString(); 
        TempData["CenterName"] = dr[2].ToString(); 
        TempData["LevelName"] = dr[3].ToString(); 
        Session["AgentId"] = dr[0].ToString(); 
        Session["LogInSession"] = SessionId; 
        return RedirectToAction("DashBoard", this.View(new AgentDetails { AgentId = Session["AgentId"].ToString() })); 
        //return this.View("DashBoard", new AgentDetails { AgentId = Session["AgentId"].ToString()}); 

       } 

私はこの引数を渡したいと、これが可能です別途、このアクションメソッドを呼び出すことです。

+0

を再利用することができますので、あなたはどのような問題が発生している方法に出てダッシュボードのコードをリファクタリングしていませんか?なぜ、 'return RedirectToAction()'の代わりに 'return View()'を使いたいのですか? –

+0

@StephenMueckeビューをレイアウトするために値を送るので、このプロセスでは '@ Model.AgentId'を表示しません。だから私は '戻りView()'を使用しようとしていると私のデータがそのビューに渡すことができるようにそのアクションメソッドを呼び出す。 – Dashanan

+0

もちろん、(モデルを初期化し、それに渡す 'AgentId'パラメータの値に基づいてプロパティを設定した場合、複雑なオブジェクトをGETメソッドに渡すのはなぜですか? 'ActionResult DashBoard(int agentId)'にリダイレクトする '' RedirectToAction( "DashBoard"、new {AgentId = Session ["AgentId"]}); –

答えて

0

アクションは単なる機能に過ぎません。他の関数と同じように呼び出すことができます。

var result = Dashboard(); if(result.xxxx) //do whatever return View(new AgentDetails { AgentId = Session["AgentId"].ToString() })

それはあなたが何をしたいのかである場合は、なぜあなたはちょうどあなたが

+0

はい、私はあなたが提案したのと同じことをしたい。この場合、レイアウトビューにこのパラメータを送ると、アクションが実行されず、ビューがレンダリングされます。 – Dashanan