Asp.net mvc 2 ASP MVC重定向到在不使用ViewData的情况下传递对象数组的操作

Asp.net mvc 2 ASP MVC重定向到在不使用ViewData的情况下传递对象数组的操作,asp.net-mvc-2,redirecttoaction,Asp.net Mvc 2,Redirecttoaction,我有以下方法 public ActionResult Search(FormCollection form) { ....... Publication[] publicationsResult = server.SearchLibrary(this.getSession(), sq); return RedirectToAction("BookListing", new { publications = publicationsRe

我有以下方法

 public ActionResult Search(FormCollection form)
    {
         .......
        Publication[] publicationsResult = server.SearchLibrary(this.getSession(), sq);

        return RedirectToAction("BookListing", new { publications = publicationsResult });
    }
它从服务器获取发布列表,并将其存储在Publication类型的数组中

我想在另一个页面中显示结果,因此我重定向到以下方法:

public ActionResult BookListing(Publication[] publications)
    {
        Publication[] p = publications;
        return View(publications);
    }
我还定义了以下路线:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Library", action = "Search", id = UrlParameter.Optional } // Parameter defaults
        );

        routes.MapRoute(
            "PublicationListing", // Route name
            "{controller}/{action}/{publications}", // URL with parameters
            new { controller = "Library", action = "BookListing", publications = UrlParameter.Optional } // Parameter defaults
        );
在搜索中,publications数组填充了13000多个对象,但是当我重定向到BookListing时,传递的是null

有没有一种方法可以使用RedirectToAction将对象数组从一个动作方法传递到另一个动作方法


谢谢。

您总是有临时数据采集。这会在单个请求的操作重定向之间持久化,从而为您提供存储空间,用于存储类似的内容…

您真的需要重定向用户吗?您可以从搜索操作返回BookListing视图。理想情况下是的,因为我希望用户能够将URL添加到书签中。您实际上是在尝试将整个数组转换为可以在URL上传递的内容。这是行不通的,因为URL中只有256个字符作为开始。你可以将搜索保存在数据库中,并向用户返回该搜索的ID,以便他们可以将结果添加到书签中,或将搜索参数放入请求/搜索?title=Test&author=John等。诸如此类的事情-这样他们可以将其添加到书签中。我正在寻找除了TempData之外的另一种方式。但是为了澄清,TempData字典将仅为一个重定向保存该数据?正确-temp数据仅在请求期间持续存在。