ASP.NET教程之Web Pages

Posted 万能de班长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET教程之Web Pages相关的知识,希望对你有一定的参考价值。

ASP.NET教程之Web Pages
ASP.NET教程之Web Pages(三)
ASP.NET教程之Web Pages(三)

五.web pages folders文件夹

1.logical folder structure

下图为asp.net网页的典型网站文件夹结构

ASP.NET教程之Web Pages(三)

"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

虚拟路径是代表物理路径的简写形式。如果您使用虚拟路径,就能够在不更新路径的情况下将网页移动到不同的域名(或服务器)。

ASP.NET教程之Web Pages(三)

磁盘驱动器上的根目录写作: 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教程之Web Pages(三)

当请求到来时,ASP.NET 检查 _AppStart 是否存在。如果存在,并且这是对站点的第一次请求,则运行 _AppStart。

然后 ASP.NET 检查 _PageStart 是否存在。如果存在,则在被请求页面前运行 _PageStart。

如果你在 _PageStart 内部引用了对 RunPage() 的调用,那么你可以规定在何处运行被请求的页面。否则,_PageStart 在被请求页面之前运行。


ASP.NET教程之Web Pages(三)


ASP.NET教程之Web Pages(三)

更多精彩内容

尽在万能de班长



以上是关于ASP.NET教程之Web Pages的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 入门教程 1使用ASP.NET Core 构建第一个Web应用

ASP.NET Web API教程1.1 第一个ASP.NET Web API

ASP.NET Web API 2 入门教程

Web API系列教程2.1 — ASP.NET Web API中的路由机制

ASP.NET Core 入门教程 1使用ASP.NET Core 构建第一个Web应用

ASP.NET Web API系列教程目录