通过ActionLink传递集合

时间:2012-05-17 15:56:33

标签: c# asp.net-mvc-3 collections viewbag

我在ASP.NET MVC3中有一个网站。我想将集合传递给另一个视图。我在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);}

如何将此对象传递给View?任何帮助非常感谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

之前我遇到过这个问题,这与路由有关。在ActionLink和ActionResult中将workList更改为id,或添加一条接受workList作为参数的新路线,例如:

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

用控制器名称替换ControllerName