2012-06-16 2 views
3

ASP.NET MVC3 웹 응용 프로그램에서 작업 중이며 개체에서 동적으로 만든 하위 메뉴가있는 탐색 메뉴를 만들고 싶습니다. 예를 들어 도서 목록이 들어있는 라이브러리 개체/모델이 있습니다. 탐색을 통해 해당 도서에 대한 링크를 동적으로 채우고 제목을 표시하고 싶습니다.개체에서 동적 탐색

예 :

Home 
Book List 
- Book 1 
- Book 2 
- Book 3 
About 

나는 나의 컨트롤러에서을 ViewData를 통해 라이브러리 개체를 전달하여이 작업을해야합니다. 내 공유 _Layout.cshtml 페이지에서 ViewData를 읽고 탐색 메뉴를 채 웁니다. 그러나이 솔루션의 단점은 내 컨트롤러에서 뷰를 반환하는 모든 메서드는 Library 개체를 ViewData에 배치해야한다는 것입니다. 그래서 이렇게하는 것이 더 좋고 간단한 방법이 있는지 궁금합니다.

jQuery로 할 수 있다고 확신하지만 어쩌면 모두 좋은 생각이들 수도 있습니다.

답변

0

Phil Haack의 블로그에 게시 된 Erik 링크가 올바른 해결책이지만 Phil의 사례가 무엇인지 파악하는 데 시간이 좀 걸렸습니다. 그것은 아주 오래된 MVC2 예제입니다. 그래서 여기에 누군가 내 질문이 같은 경우에 내 프로그램이 어떻게 끝났는지 보여주는 예제가 있습니다.

홈 컨트롤러 :

[ChildActionOnly] 
public ActionResult Menu() 
{ 
Library library = something.getLibrary(); 

return PartialView("_MenuPartial", library); 
} 

공유 부분보기 _MenuPartial.cshtml :

@model ProjectName.Models.Library 

<ul> 
@foreach (var book in @Model.BookList) 
{ 
    <li><a href="#">@book.Title</a></li> 
} 
</ul> 

공유보기 _Layout.cshtml : 링크가 도움이 것을

<html> 
<head> 
</head> 
<body> 
    <nav> 
    @{Html.RenderAction("Menu","Home");} 
    </nav> 
</body> 
</html>