Asp.net MVC 利用PartialView 構造自定義菜單


在VS2010中利用Asp.net MVC自帶的模板生成的菜單是固定的,沒辦法更改,下面利用PartialView實現簡單的一級菜單。

1) 修改_Layout.cshtml,在<nav>部分改成@{ Html.RenderAction("Menu", "Home");}

 <div class="float-right">
       <section id="login">
             @Html.Partial("_LogOnPartial")                       
       </section>
               <nav>    
                  @{ Html.RenderAction("Menu", "Home");}                        
               </nav>
 </div>

  MVC將會調用HomeController的Menu方法來顯示菜單

2)在HomeController里面添加Menu方法,返回PartialView

public PartialViewResult Menu()
{
List<MenuItem> menus = new List<MenuItem>();
menus.Add(new MenuItem{ Text="Home", Controller="Home", Action="Index"});
menus.Add(new MenuItem { Text = "Job", Controller = "Job", Action = "Index" });
menus.Add(new MenuItem { Text = "About", Controller = "Home", Action = "About" });
menus.Add(new MenuItem { Text = "Contact", Controller = "Home", Action = "Contact" });
return PartialView(new MenuModel { Menus = menus });
}

3) 定義一個新的PartialView ,名稱為Menu.cshtml,基於原來自動生成的代碼修改為:

@model MVCDemo.Models.MenuModel 
<ul id="menu">
    @foreach (var item in Model.Menus)
    { 
    <li>@Html.RouteLink(item.Text, new { controller = item.Controller, action = item.Action })</li>
    }
</ul>

利用PartialView可以實現自定義多級菜單,並且權限控制也很容易。 

完整代碼如下:

 http://files.cnblogs.com/huyq2002/MVCDemo.zip

 運行該示例可能需要安裝asp.net MVC4

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM