2011-02-24 47 views
2

我想实现我的MVC 3点的2级父/子菜单,如MVC 3渲染2级菜单管窥

Company 
- Background 
- Contact 

我实现了一个单一的,父级菜单像这样一个PartialView ...

<div id="menu" class="block"> 
    <ul id="menuItems"> 
     foreach (var item in Model) 
     { 
     <li id="@item.Id">@Html.ActionLink(item.Name, item.Action,item.Controller)</li> 
     } 
    </ul> 
</div> 

,然后包括它在我的母版...

@{Html.RenderAction("MainMenu", "Menu");} 

的问题是,我想仁基于在父级别选择的菜单项目来执行第二个子菜单。这涉及将父代的Id传递给返回菜单模型的控制器操作。我不知道我可以如何将这个父母身份传递给控制器​​操作。任何人都可以提供任何见解吗?我正在使用MVC3 & Razor。

回答

0

看起来像你使用剃刀,虽然我不是很熟悉,我会对它进行一次尝试。基本上,你要传递一个具有“id”属性的新对象到MainMenu视图。这将创建另一个菜单。您的MainMenu操作应采用id的可选参数。

public ActionResult MainMenu(int? id = null) { 
    ... 
} 

这是您的新列表项目的样子。

<li id="@item.Id">@Html.ActionLink(item.Name, item.Action,item.Controller) 

@{Html.RenderAction("MainMenu", "Menu", new { id = item.Id });} 

</li>