通过行动链接传递收集

本文关键字:链接 | 更新日期: 2023-09-27 18:34:40

我在MVC3 ASP.NET 有一个网站。我想将集合传递到另一个视图。我在ViewBag有这个收藏.这是我的ActionLink

@Html.ActionLink("Show Report", "Report", new { workList = ViewBag.workReportList }) 

控制器:

public ActionResult Report(List<Work> workList)
{
    return View(workList);
}

但它不起作用 - 看起来传递的对象是空的。当我使用相同的对象来RenderPartial一切正常时。

@{Html.RenderPartial("WorkListTable", (IEnumerable<WorkWeb.Entities.Work>)ViewBag.workReportList);}

如何将此对象传递到视图?任何帮助非常感谢!

通过行动链接传递收集

您是否尝试过此操作(传递控制器名称(?

@Html.ActionLink("Show Report", "Report", "ControllerName", new { workList = ViewBag.workReportList }, null)

我以前遇到过这个问题,这与路由有关。 在操作链接和操作结果中将workList更改为id,或者添加一个接受workList作为参数的新路由,如下所示:

routes.MapRoute(
            "ReportRoute", // Route name
            "{controller}/{action}/{workList}", // URL with parameters
            new { controller = "ControllerName", action = "Report", workList = UrlParameter.Optional }
        );

ControllerName替换为控制器的名称