2013-03-22 6 views
0

데이터베이스에서 수집 한 데이터로 ActionLink를 작성하여 메뉴를 만들려고합니다. @ item.name, @ item.ActionName .... 시도했지만 작동하지 않습니다 .... 임 잘못된 일을하고 있지만 찾을 수 없습니다 .... .... 도와주세요. 감사합니다.Html ActionLink. 목록에서 항목을 작업 링크로 정렬

<ul id="menu"> 
    @foreach (var item in ViewBag.MenuList) 
    { 
     <li class="ajax_link"> 
      @Html.ActionLink(item.Name, item.ActionName, item.ControllerName) 
     </li> 
     <li>|</li> 
    } 
</ul> 

답변

3

당신은 ViewBag을 캐스팅해야합니다. MenuList 또는 이와 비슷한 클래스가 있다고 가정합니다. 이

@foreach (var item in ViewBag.MenuList as List<HomeController.MenuList>) 
{  
  <li class="ajax_link"> 
    @Html.ActionLink(item.Name, item.ActionName, item.ControllerName) 
    </li> 

에 코드를 변경 또는, 뷰 모델에 찬성 전부 성가신 ViewBag 도랑 예상대로 원래 구문은 작동합니다. 그 말을하는 것입니다 :

는 뷰 모델 속성 메뉴 항목의 목록을 확인

public class MenuList 
{ 
    public string Name { get; set; } 
    public string ActionName { get; set; } 
    public string ControllerName { get; set; } 
} 

public class ViewModel 
{ 
    //... 
    public List<MenuList> MenuLists { get; set; } 
} 

강하게

@model MvcApplicationForTestingStuff.Controllers.HomeController.ViewModel 

다음 행동 링크가이 구문을 사용하여 작동을보기를 입력

<ul id="menu"> 
    @foreach (var item in Model.MenuLists) 
    { 
     <li class="ajax_link"> 
      @Html.ActionLink(item.Name, item.ActionName, item.ControllerName) 
     </li> 
     <li>|</li> 
    } 
</ul> 
+0

시도했습니다. 그것은 또한 작동하지 않습니다) : – Aypeross

+0

@Aypeross 무엇이 작동하지 않습니까? 또는 더 구체적으로, 이것은 무엇을 달성합니까? 보기 소스를 주시겠습니까? –

+0

@Aypeross 수정 된 답변입니다. 어쩌면 또 다른 기회를 줄 수 있습니다. –