HoRain云--ASP.NET Web Pages - 全局页面
HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍 一、_PageStart.cshtml — “全局入口” 二、_Layout.cshtml — 全局模板/母版页⚙️ 三、_AppStart.cshtml — 应用启动时只跑一次 四、Global.asax — 真正的“全局层” 总结对比vs Classic ASP在ASP.NET Web Pages (Razor) 中“全局页面”主要指两类东西启动/布局页作用于所有或一组页面以及应用级初始化整个站点只跑一次。 一、_PageStart.cshtml — “全局入口”放在站点根目录或子目录下同目录及子目录的所有.cshtml页面执行前都会先运行它。常用于统一设置 Layout、鉴权等。示例/Pages/_PageStart.cshtml{ // 统一指定母版页 Layout ~/Shared/_Layout.cshtml; // 公共变量/配置 PageData[SiteTitle] 我的站点; // 简单登录检查 if (!Request.IsAuthenticated !Request.Path.StartsWith(/Login)) { Response.Redirect(~/Login); } }子目录可放自己的_PageStart会覆盖父目录设置。 二、_Layout.cshtml — 全局模板/母版页定义整站统一的 HTML 骨架内容页用RenderBody()填充。/Shared/_Layout.cshtml!DOCTYPE html html head titlePageData[SiteTitle] - Page.Title/title link href~/Styles/Site.css relstylesheet/ /head body div idheaderRenderSection(Header, required: false)/div div idmainRenderBody()/div div idfootercopy; DateTime.Now.Year/div /body /html内容页/Index.cshtml{ Page.Title 首页; } section Header { h1欢迎/h1 } p这里是正文.../p⚙️ 三、_AppStart.cshtml — 应用启动时只跑一次放在根目录下的App_Start文件夹内首次访问站点时执行一次适合初始化配置、注册路由等。/App_Start/_AppStart.cshtml{ // 例如注册简单的自定义路由规则 RouteTable.Routes.MapWebPageRoute( pattern: Products/{Category}, defaultPath: ~/ProductsByCategory.cshtml ); // 初始化全局数据 AppState[HitCount] 0; } 四、Global.asax — 真正的“全局层”如果需要更底层的 Application/Session 事件像 Classic ASP 里的 Global.asa仍可用Global.asax% Application InheritsSystem.Web.HttpApplication % script runatserver void Application_Start(object sender, EventArgs e) { // 站点启动 } void Session_Start(object sender, EventArgs e) { // 会话开始 } /script 总结对比vs Classic ASP需求ASP.NET Web Pages (Razor)Classic ASP所有页面前置逻辑_PageStart.cshtml#include file/ 手动封装函数统一模板_Layout.cshtmlRenderBody/Section重复包含头部尾部应用启动_AppStart.cshtml/Global.asaxGlobal.asa如果你说“全局页面”是想做某个具体功能比如所有页面都要判断登录、统一菜单、全局异常处理我可以给你更贴合的例子。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧