• 一种在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、效果图

  • 相关阅读:
    D触发器的使用小结
    CAN通信帧ID的含义解析? (转载)
    mcp2515屏蔽寄存器和过滤寄存器的学习
    spi调试步骤,mcp2515调试整理
    最近工作小结2019.11.24
    Can总线上的电平及物理层仲裁
    can总线学习网上资料汇总
    can总线的远程帧(遥控帧)—说的很形象
    在IAR平台建立STC8ASK64S4A12单片机工程
    cortex-m系列的区别(图解)及今日碎片学习笔记
  • 原文地址:https://www.cnblogs.com/xiaochun126/p/4778946.html
Copyright © 2020-2023  润新知