🎬 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> <title>@PageData["SiteTitle"] - @Page.Title</title> <link href="~/Styles/Site.css" rel="stylesheet"/> </head> <body> <div id="header">@RenderSection("Header", required: false)</div> <div id="main">@RenderBody()</div> <div id="footer">© @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 Inherits="System.Web.HttpApplication" %> <script runat="server"> 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 |
|---|---|---|
所有页面前置逻辑 |
|
|
统一模板 |
| 重复包含头部尾部 |
应用启动 |
|
|
如果你说“全局页面”是想做某个具体功能(比如所有页面都要判断登录、统一菜单、全局异常处理),我可以给你更贴合的例子。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙