将对象从控制器传递到其他控制器

时间:2010-02-04 02:11:47

标签: c# asp.net-mvc c#-4.0

这是问题,

我有一个控制器:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Detail(SomeObjectX a)
    {
        SomeObjectY b = new SomeObjectY();

 b.merge(a); //i already have merge method.

        return RedirectToAction("SomeAction", "SomeController", new { c = b });
    }

是否可以将对象b传递给不同控制器上的其他操作,在本例中为SomeController上的SomeAction。谢谢你的帮助:))

2 个答案:

答案 0 :(得分:6)

在你的第一个动作中,细节,

TempData["some-key-here"] = b;

在您想要接收对象的动作中,SomeAction

SomeObjectY b = (SomeObjectY)TempData["some-key-here"];

编辑:您不需要以这种方式使用RedirectToAction中的参数。

答案 1 :(得分:0)

这是一种在不使用任何魔术字符串的情况下在重定向上传递对象的方法:http://jonkruger.com/blog/2009/04/06/aspnet-mvc-pass-parameters-when-redirecting-from-one-action-to-another/