zoukankan      html  css  js  c++  java
  • 一种在MVC3框架里面设置模板页的方法,不使用_ViewStart

    1、新建MasterFilterAttribute类继承ActionFilterAttribute,重写方法OnActionExecuted

    ,指定ViewResult的MasterName = "Master";

        

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace MvcApplication1
    {
        public class MasterFilterAttribute : ActionFilterAttribute
        {
    
            public override void OnActionExecuted(ActionExecutedContext filterContext)
            {
    
                base.OnActionExecuted(filterContext);
    
                var result = filterContext.Result as ViewResult;
    
                if (result != null)
                {
                    result.MasterName = "Master";
                }
            }
    
        }
    }

    2、在Global.asax中注册

           

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
    
    namespace MvcApplication1
    {
        // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
        // visit http://go.microsoft.com/?LinkId=9394801
    
        public class MvcApplication : System.Web.HttpApplication
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
    
                filters.Add(new MasterFilterAttribute());
    
            }
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    "Default", // Route name
                    "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
                );
            }
    
            protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
    
                RegisterGlobalFilters(GlobalFilters.Filters);
                RegisterRoutes(RouteTable.Routes);
            }
        }
    }

    3、创建Master页面,ViewsSharedMaster.cshtml

    <!DOCTYPE html>

    <html>

    <head>

        <title>@ViewBag.Title</title>

        <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />

        <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>

    </head>

    <body>

        <h2>master-top</h2>

          <div id="main">

            @RenderBody()

          </div>

        <h2>master-bottom</h2>

    </body>

    </html>

    4、创建子页面Home,ViewsHomeHome.cshtml

    @{

        ViewBag.Title = "Index";

    }

    <h2>Index</h2>

    5、效果图

  • 相关阅读:
    Java实战项目收集
    Drebin数据集
    网络“法官”
    沉醉
    孔方兄
    《Qt 5.9 C++开发指南》例程源码
    《论语》中那些耳熟能详的词汇
    破祟
    Qt使用UI编辑器添加的控件Icon运行时不显示
    Ubuntu格式化SD卡
  • 原文地址:https://www.cnblogs.com/xiaochun126/p/4778946.html
Copyright © 2011-2022 走看看