"Account" 文件夹包含登录和安全文件


"App_Data" 文件夹包含数据库和数据文件


"Images" 文件夹包含图片


"Scripts" 文件夹包含浏览器脚本


"Shared" 文件夹包含公共的文件(比如布局和样式文件)




物理文件夹结构


在上述网站中的"Images"文件夹在计算机上的物理文件夹结构可能如下:


C:\Documents\MyWebSites\Demo\Images 




虚拟名称和物理名称(相对路径和绝对路径)


以上面的例子为例:


网站图片的虚拟名称可能是"Images/pic31.jpg"。


对应的物理名称是"C:\Documents\MyWebSites\Demo\Images\pic31.jpg"。

~ 运算符
 var myImagesFolder = "~/images";


 Server.MapPath 方法
 var pathName = "~/dataFile.txt";
 var fileName = Server.MapPath(pathName);


 Href 方法
 @{var myStyleSheet = "~/Shared/Site.css";}
 <!-- This creates a link to the CSS file. -->
 <link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />
 <!-- Same as : -->
 <link rel="stylesheet" type="text/css" href="/Shared/Site.css" />

ASP.NET Web Pages - 全局页面

在 Web 启动之前:_AppStart
大多数的服务器端代码是写在个人网页里边。例如,如果网页中包含输入表单,那么这个网页通常包含用来读取表单数据的服务器端代码。
然而,您可以通过在您的站点根目录下创建一个名为 _AppStart 的页面,这样在站点启动之前可以先启动代码执行。如果存在此页面,
ASP.NET 会在站点中其它页面被请求时,优先运行这个页面。
_AppStart 的典型用途是启动代码和初始化全局数值(比如计数器和全局名称)。
注释 1:_AppStart 的文件扩展名与您的网页一致,比如:_AppStart.cshtml。
注释 2:_AppStart 有下划线前缀。因此,这些文件不可以直接浏览。

在每一个页面之前:_PageStart
就像 _AppStart 在您的站点启动之前就运行一样,您可以编写在每个文件夹中的任何页面之前运行的代码。
对于您网站中的每个文件夹,您可以添加一个名为 _PageStart 的文件。
_PageStart 的典型用途是为一个文件夹中的所有页面设置布局页面,或者在运行某个页面之前检查用户是否已经登录。

当接收到一个请求时,ASP.NET 会首先检查 _AppStart 是否存在。 如果 _AppStart 存在且这是站点接收到的第一个请求,则运行 _AppStart。
然后 ASP.NET 检查 _PageStart 是否存在。如果 _PageStart 存在,则在其它被请求的页面运行之前先运行 _PageStart。
您可以在 _PageStart 中调用 RunPage() 来指定被请求页面的运行位置。否则,默认情况下,被请求页面是在 _PageStart 运行之后才被运行。


ASP.NET Web Pages - HTML 表单
表单是 HTML 文档中放置输入控件(文本框、复选框、单选按钮、下拉列表)的部分。


创建一个 HTML 输入页面
Razor 实例

<html>
<body> 
@{
if (IsPost) { 
string companyname = Request["companyname"]; 
string contactname = Request["contactname"]; 
<p>You entered: <br />
Company Name: @companyname <br />
Contact Name: @contactname </p>
}
else
{
<form method="post" action="">
Company Name:<br />
<input type="text" name="CompanyName" value="" /><br />
Contact Name:<br />
<input type="text" name="ContactName" value="" /><br /><br />
<input type="submit" value="Submit" class="submit" />
</form>
}
} 
</body> 
</html>

Razor 实例 - 显示图像


假设在您的图像文件夹中有 3 张图像,您想根据用户的选择动态地显示图像。


这可以通过一段简单的 Razor 代码来实现。


如果在您的网站的图像文件夹中有一个名为 "Photo1.jpg" 的图像,您可以使用 HTML 的 <img> 元素来显示图像,如下所示:


<img src="images/Photo1.jpg" alt="Sample" />


下面的例子演示了如何显示用户从下列列表中选择的图像:




Razor 实例


@{
var imagePath=""; 
if (Request["Choice"] != null)
{imagePath="images/" + Request["Choice"];} 
} 
<!DOCTYPE html> 
<html> 
<body> 
<h1>Display Images</h1> 
<form method="post" action=""> 
I want to see: 
<select name="Choice"> 
<option value="Photo1.jpg">Photo 1</option> 
<option value="Photo2.jpg">Photo 2</option> 
<option value="Photo3.jpg">Photo 3</option> 
</select> 
<input type="submit" value="Submit" /> 
@if (imagePath != "")
{
<p>
<img src="@imagePath" alt="Sample" />
</p>
} 
</form> 
</body> 
</html>

实例解释


服务器创建了一个叫 imagePath 的变量。


HTML 页面有一个名为 Choice 的下拉列表(<select> 元素)。它允许用户根据自己的意愿选择一个


名称(如 Photo 1),当页面被提交到 Web 服务器时,则传递了一个文件名(如 Photo1.jpg)。


Razor 代码通过 Request["Choice"] 读取 Choice 的值。如果通过代码构建的图像路径(images/Photo1.jpg)有


效,就把图像路径赋值给变量 imagePath。


在 HTML 页面中,<img> 元素用来显示图像。当页面显示时,src 属性用来设置 imagePath 变量的值。


<img> 元素是在一个 if 块中,这是为了防止显示没有名称的图像,比如页面第一次被加载显示的时候。