zoukankan      html  css  js  c++  java
  • [转]Asp.net MVC 利用PartialView 构造自定义菜单

    本文转自:http://www.cnblogs.com/huyq2002/archive/2012/01/06/2314838.html

    在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 });
    }
    复制代码

    其中:MenuItem为新添加的自定义的Class

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI.WebControls;
    
    namespace MVCDemo.Models
    {
    
        public class MenuItem
        {
            public string Text { get; set; }
            public string Controller { get; set; }
            public string Action { get; set; }
        }
        
    
        public class MenuModel
        {
            public List<MenuItem> Menus { get; set; }
        }
    }

    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

  • 相关阅读:
    pg-xl 基于 pgxc_ctl 安装与使用
    pg-xl 的基本方式添加节点
    pg-xl 的基本方式安装与使用
    oracle 12.2.0.1 + oracle goldengate 12.3.0.1.4 之一 dml
    postgresql 高可用 etcd + patroni 之二 patroni
    postgresql 高可用 etcd + patroni 之一 etcd
    rvm,ruby的安装
    oracle 12.2.0.1 使用 active dataguard broker 之二 failover
    oracle 12.2.0.1 使用 active dataguard broker 之二 switchover
    es 6.3 .tar.gz 安装
  • 原文地址:https://www.cnblogs.com/freeliver54/p/5584013.html
Copyright © 2011-2022 走看看