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数据仅在请求期间持续存在。