2012-05-17 62 views
0

我在ASP.NET MVC3中有一個網站。我想將集合傳遞給另一個視圖。我在ViewBag有這個集合。這裏是我的ActionLink通過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?任何幫助非常感謝!

回答

0

您是否嘗試過(傳遞控制器名稱)?

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

是的,我有嘗試傳遞控制器名稱。但情況並非如此。 – Marta

0

我以前有過這個問題,這是與路由。改變workListid在這兩個您的ActionLink並在你的ActionResult或添加在您接受workList作爲參數的新途徑,是這樣的:

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

與控制器的名稱更換ControllerName

+0

我已經試過這個,但仍然是空的列表。 – Marta

+0

哦,我的不好,我記得你不能通過這樣的鏈接發佈集合,你可以在這裏做一些建議嗎? http://stackoverflow.com/questions/5682944/how-to-pass-ienumerable-model-in-parameter-of-html-actionlink – CallumVass