2012-05-17 2 views
0

나는 ASP.NET MVC3에 웹 사이트를 가지고있다. 컬렉션을 다른보기로 전달하고 싶습니다. 이 컬렉션은 ViewBag에 있습니다.ActionLink를 통해 컬렉션을 패스

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

컨트롤러 :

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

그러나 작동하지 않습니다 - 전달 된 객체가 비어있는 것 같습니다 여기 내 ActionLink입니다. RenderPartial에 동일한 객체를 사용하면 모든 것이 잘 작동합니다.

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

어떻게이 개체를보기로 전달할 수 있습니까? 도움이 많이 감사!

답변

0

시도해 보셨습니까 (컨트롤러 이름 전달)?

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

네,이 컨트롤러 이름을 전달하려고했습니다. 그러나 여기서는 그렇지 않습니다. – Marta

0

이전에이 문제가있었습니다. 라우팅과 관련이 있습니다. , 같은 것을 모두 당신 ActionLink에 당신의 ActionResult에 idworkList을 변경하거나 매개 변수로 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