[转载]Asp.net MVC 利用PartialView 构造自定义菜单

[转载]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

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏