ASP.NET教程之Web Pages
Posted 万能de班长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET教程之Web Pages相关的知识,希望对你有一定的参考价值。
五.web pages folders文件夹
1.logical folder structure
下图为asp.net网页的典型网站文件夹结构
"Account" 文件夹包含登录和安全文件
"App_Data" 文件包含数据库和数据文件
"Images" 文件夹包含图片
"Scripts" 文件夹包含浏览器脚本
"Shared" 文件夹包含通用文件(比如布局和样式文件)
2.physical folder structure
例如,上面这个网站的 "Images" 文件夹的物理结构在计算机上类似这样:
C:JohnnyDocumentsMyWebSitesDemoImages
3.virtual and physical names
例如,上面这个网站的web 图片的virtual name虚拟名称类似这样:"Images/pic31.jpg"。
但是physical name物理名称类似这样 "C:JohnnyDocumentsMyWebSitesDemoImagespic31.jpg"。
4.URLs and paths
URL用于从web访问文件
https://www.w3schools.com/html/html5_intro.asp
URL在服务器上对应的文件是
C:MyWebSitesw3schoolshtmlhtml5_intro.asp
虚拟路径是代表物理路径的简写形式。如果您使用虚拟路径,就能够在不更新路径的情况下将网页移动到不同的域名(或服务器)。
磁盘驱动器上的根目录写作: C:,但是网站上的根目录是 /
web 文件夹的虚拟路径(几乎)永远不会与物理文件夹相同
在您的代码中,根据代码内容的不同,可能会同时引用物理路径和虚拟路径
ASP.NET 提供三种处理文件夹路径的工具:~ 操作符、Server.MapPath 方法以及 Href 方法
5.~操作符
如需在编程代码中规定虚拟根目录,请使用 ~ 操作符
如果您使用 ~ 操作符,而不是路径,就能够在不改变任何代码的情况下,将网站移动到不同的文件夹或位置
var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";
6.Server.MapPath方法
Server.MapPath 方法将虚拟路径 (/default.cshtml) 转换为服务器能够理解的物理路径 (C:JohnnyMyWebSitedDemodefault.cshtml)。
当需要打开位于服务器上的数据文件时,您就会用到该方法(数据文件只能通过完整的物理路径来访问)
var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);
7.Href方法
Href 方法把代码中的路径转换为浏览器能够理解的路径(浏览器无法理解 ~ 操作符)。
您使用 Href 方法来创建指向资源(比如图片和 CSS 文件)的路径。(Href 方法属于 WebPage 对象的方法)
您会经常在 HTML 、 以及
元素中用到该方法
@{var myStyleSheet = "~/Shared/Site.css";}
六.global pages全局页面
1.before web startup: _AppStart
大多数服务器端代码都是在独立的网页中编写的。
不过,通过在站点根目录中创建名为 _AppStart 的页面,你能够在站点启动前就执行启动代码(startup code),而且ASP.NET 会在站点内的任何页面被请求之前首先运行这个页面。
通常 _AppStart 用于启动代码和全局值的初始化,比如计数器和全局名称。
注释 1:_AppStart 的文件扩展名应与网页相同,比如 _AppStart.cshtml。
注释 2:_AppStart 有下划线前缀。正因如此,用户才无法直接查看该文件。
2.before every page:_PageStart
就像在站点启动前运行 _AppStart 那样,你能够在每个文件夹中的任意页面之前运行代码
对于 web 中的每个文件夹,能够添加名为 _PageStart 的文件
通常 _PageStart 用于设置文件夹中所有页面的布局文件,或者在运行页面之前检查用户登录
3.how does it work
当请求到来时,ASP.NET 检查 _AppStart 是否存在。如果存在,并且这是对站点的第一次请求,则运行 _AppStart。
然后 ASP.NET 检查 _PageStart 是否存在。如果存在,则在被请求页面前运行 _PageStart。
如果你在 _PageStart 内部引用了对 RunPage() 的调用,那么你可以规定在何处运行被请求的页面。否则,_PageStart 在被请求页面之前运行。
更多精彩内容
尽在万能de班长以上是关于ASP.NET教程之Web Pages的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 入门教程 1使用ASP.NET Core 构建第一个Web应用
ASP.NET Web API教程1.1 第一个ASP.NET Web API
Web API系列教程2.1 — ASP.NET Web API中的路由机制