RedirectToAction调用了两次问题

时间:2011-12-10 14:02:27

标签: asp.net-mvc model-view-controller redirect

我有控制器:

Controller A
{
   public ActionResult ExecuteSomeStuff()
   {
    ....use TempData
    returns a View("StuffMade", SomeModel);
   }
}

 Controller B
{
   public ActionResult DoStuff()
   {
         ...fill up TempData     


    returns RedirectToAction("ExecuteSomeStuff", "A");
   }
}

问题是控制器A上的ExecuteSomeStuff方法执行了两次。 我不需要实际的重定向,我只是希望为DoStuff方法返回ExecuteSomeStuff方法的结果(视图)。 我不想在控制器B中引用控制器A,以便直接调用该方法。

如果没有对控制器B中的控制器A进行物理重定向或新引用,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

如果我正确理解你,而不是RedirectToAction,你可以从控制器B返回ExecuteSomeStuff View。你需要能够设置Model通过从控制器B进入视图。因此,您可能仍需要参考控制器A中使用的方法。

Controller B:
 {

    public ActionResult DoStuff()
    {
    ...fill up TempData 
    //set the model then Return the View with the Model passed in
    return View("ExecuteSomeStuff","A",SomeModel);
    }

<强>更新

这将查找与 ExecuteSomeStuff 操作同名的View,而不实际输入 ExecuteSomeStuff 操作。如果您的View具有不同的名称,您可以明确指定要返回的视图,如下所示:

return View("../A/theCorrectView.aspx", model);