2017-01-29 2 views
1

Ceci est la partie de ma classe contrôleurune action d'une autre action sans instruction 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()}); 

       } 

Je veux passer cet argument et et appeler cette méthode d'action est séparément cela possible.

+0

Alors, quel problème vous avoir? Et pourquoi voudriez-vous utiliser 'return View()' au lieu de 'return RedirectToAction()'? –

+0

@StephenMuecke J'envoie les valeurs à la vue de mise en page, donc dans ce processus, elle ne rend pas '@ Model.AgentId'. J'essaie donc d'utiliser 'return View()' et je veux appeler cette méthode d'action pour que mes données puissent être transmises à cette vue. – Dashanan

+0

Bien sûr que oui (si vous avez initialisé un modèle et paramétrez ses propriétés en fonction de la valeur du paramètre 'AgentId' que vous lui passez, mais pourquoi dans le monde passez-vous un objet complexe à une méthode GET comme (le cas échéant Les propriétés de 'AgentDetails' sont des objets complexes ou des collections qui échoueraient.Il devrait être' return RedirectToAction ("DashBoard", new {AgentId = Session ["AgentId"]}) 'qui redirige vers' public ActionResult DashBoard (int agentId) ' –

Répondre

0

Une action est juste une fonction. Vous pouvez l'appeler comme n'importe quelle autre fonction.

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

Si tel est ce que vous voulez faire, alors pourquoi ne pas vous venez de refactoring code Dashboard dehors dans une méthode que vous pouvez réutiliser

+0

oui en fait je veux la même chose que vous avez suggéré.Je suis l'envoi de ce paramètre à la vue de mise en page dans ce cas, l'action de ne pas l'exécuter rend juste la vue. – Dashanan