詳情請參考菜鳥教程:http://www.runoob.com/aspnet/aspnet-tutorial.html
1.ASP.NET 是一個使用 HTML、CSS、JavaScript 和伺服器腳本建立網頁和網站的開發架構。
2.ASP.NET 支援三種不同的開發模式:Web Pages(Web 頁面)、MVC(Model View Controller 模型-視圖-控制器)、Web Forms(Web 窗體)
其中,Web Pages 是開發 ASP.NET 網站最簡單的開發模式。
使用 VB (Visual Basic) 或者 C# (C sharp) 最新的 Razor 伺服器标記文法将 HTML、CSS、JavaScript 和伺服器代碼結合起來。
3.ASP.NET 是新一代 ASP 。它與經典 ASP 是不相容的,但 ASP.NET 可能包括經典 ASP。
ASP.NET 頁面是經過編譯的,這使得它們的運作速度比經典 ASP 快。
ASP.NET 具有更好的語言支援,有一大套的使用者控件和基于 XML 的元件,并內建了使用者身份驗證。
ASP.NET 頁面的擴充名是 .aspx ,通常是用 VB (Visual Basic) 或者 C# (C sharp) 編寫。
在 ASP.NET 中的控件可以用不同的語言(包括 C++ 和 Java)編寫。
4.Razor 是一種将伺服器代碼嵌入到 ASP.NET 網頁中的新的、簡單的标記文法,很像經典 ASP 。
經典 ASP 檔案的檔案擴充名為 .asp
ASP.NET 檔案的檔案擴充名為 .aspx
Razor C# 文法的 ASP.NET 檔案的檔案擴充名為 .cshtml
Razor VB 文法的 ASP.NET 檔案的檔案擴充名為 .vbhtml
5.Web Pages(Web 頁面)WP開發模式(提供了一種簡單的方式來将 HTML、CSS、JavaScript 和伺服器腳本結合起來)
xxx .cshtml檔案
<!DOCTYPE html>
<html>
<body>
<h1>Hello Web Pages</h1>
<p>The time is @DateTime.Now</p>
</body>
</html>
- Razor 是一種将基于伺服器的代碼添加到網頁中的标記文法
- Razor 具有傳統 ASP.NET 标記的功能,但更容易使用并且更容易學習
- Razor 是一種伺服器端标記文法,與 ASP 和 PHP 很像
- Razor 支援 C# 和 Visual Basic 程式設計語言
主要的 Razor C# 文法規則
- Razor 代碼塊包含在 @{ ... } 中
- 内聯表達式(變量和函數)以 @ 開頭
- 代碼語句用分号結束
- 變量使用 var 關鍵字聲明
- 字元串用引号括起來
- C# 代碼區分大小寫
- C# 檔案的擴充名是 .cshtml
<html>
<body>
<!-- Single statement block -->
@{ var myMessage = "Hello World"; }
<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage</p>
<!-- Multi-statement block -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}
<p>The greeting is: @greetingMessage</p>
</body>
</html>
主要的 Razor VB 文法規則
- Razor 代碼塊包含在 @Code ... End Code 中
- 變量使用 Dim 關鍵字聲明
- VB 代碼不區分大小寫
- VB 檔案的擴充名是 .vbhtml
<!-- Single statement block -->
@Code dim myMessage = "Hello World" End Code
<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage</p>
<!-- Multi-statement block -->
@Code
dim greeting = "Welcome to our site!"
dim weekDay = DateTime.Now.DayOfWeek
dim greetingMessage = greeting & " Here in Huston it is: " & weekDay
End Code
<p>The greeting is: @greetingMessage</p>
Web Pages - 頁面布局
内容塊(來自另一個檔案)能被導入網頁中的任何地方。内容塊可以包含文本,标記和代碼,就像任何普通的網頁一樣。
使用 @RenderPage() 方法從不同的檔案導入内容。
<html>
<body>
@RenderPage("header.cshtml")
<h1>Hello Web Pages</h1>
<p>This is a paragraph</p>
@RenderPage("footer.cshtml")
</body>
</html>
Layout Page(布局頁)
布局頁中使用 @RenderBody() 方法嵌入内容頁,除此之外,它與一個正常的網頁沒有什麼差别。
布局頁:
<html>
<body>
<p>This is header text</p>
@RenderBody()
<p>© 2012 Runoob. All rights reserved.</p>
</body>
</html>
内容頁:
@{Layout="Layout.cshtml";}
<h1> Welcome to W3Cschool </h1>
<p>Hello!!! </p>
通過 Content Blocks(内容塊)和 Layout Pages(布局頁)這兩個 ASP.NET 工具,可以讓 Web 應用程式顯示一緻的外觀。
防止檔案被浏覽
在 ASP.NET 中,檔案的名稱以下劃線開頭,可以防止這些檔案在網上被浏覽。
如果不希望内容塊或者布局頁被使用者看到,可以重命名這些檔案:
_header.cshtm
_footer.cshtml
_Layout.cshtml
隐藏敏感資訊
在 ASP.NET 中,隐藏敏感資訊(資料庫密碼、電子郵件密碼等等)最通用的方法是将這些資訊儲存在一個名為"_AppStart.cshtml"的單獨的檔案中。
@{
WebMail.SmtpServer = "mailserver.example.com";
WebMail.EnableSsl = true;
WebMail.UserName = "[email protected]";
WebMail.Password = "your-password";
WebMail.From = "[email protected]";
}
6.Web Pages - 檔案夾
邏輯檔案夾結構和實體檔案夾結構
虛拟名稱和實體名稱
URL 和路徑
ASP.NET 檔案夾路徑有 3 種工具:~ 運算符、Server.MapPath 方法 和 Href 方法。
使用 ~ 運算符,在程式設計代碼中規定虛拟路徑
var myStyleSheet = "~/styles/StyleSheet.css";
Server.MapPath 方法
Server.MapPath 方法将虛拟路徑(/index.html)轉換成伺服器能了解的實體路徑(C:\Documents\MyWebSites\Demo\default.html)
var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);
Href 方法将代碼中的使用的路徑轉換成浏覽器可以了解的路徑(浏覽器無法了解 ~ 運算符)
一般會在 HTML 中的 <a>、<img> 和 <link> 元素中使用此方法:
@{var myStyleSheet = "~/Shared/Site.css";}
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />等價于:
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />
Href 方法是 WebPage 對象的一種方法。
7.Web Pages - 全局頁面
在 Web 啟動之前:_AppStart
站點根目錄下建立一個名為 _AppStart 的頁面,這樣在站點啟動之前可以先啟動代碼執行。
_AppStart 的典型用途是啟動代碼和初始化全局數值(比如計數器和全局名稱)。
注釋 1:_AppStart 的檔案擴充名與您的網頁一緻,比如:_AppStart.cshtml。
注釋 2:_AppStart 有下劃線字首。是以,這些檔案不可以直接浏覽。
在每一個頁面之前:_PageStart
可以編寫在每個檔案夾中的任何頁面之前運作的代碼。
_PageStart 的典型用途是為一個檔案夾中的所有頁面設定布局頁面,或者在運作某個頁面之前檢查使用者是否已經登入。
當接收到一個請求時,ASP.NET 會首先檢查 _AppStart 是否存在。 如果 _AppStart 存在且這是站點接收到的第一個請求,則運作 _AppStart。
然後 ASP.NET 檢查 _PageStart 是否存在。如果 _PageStart 存在,則在其它被請求的頁面運作之前先運作 _PageStart。
您可以在 _PageStart 中調用 RunPage() 來指定被請求頁面的運作位置。否則,預設情況下,被請求頁面是在 _PageStart 運作之後才被運作。
8.Web Pages - HTML 表單
表單是 HTML 文檔中放置輸入控件(文本框、複選框、單選按鈕、下拉清單)的部分
<!DOCTYPE html>
<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><br>
<input type="text" name="ContactName" value=""><br><br>
<input type="submit" value="Submit" class="submit">
</form>
}
}
</body>
</html>
顯示圖像
<img src="images/Photo1.jpg" alt="Sample" />
9.Web Pages - 對象
Page 對象
使用的 Page 對象方法:
@RenderPage("header.cshtml")
@RenderBody()
.......
Page 對象屬性(isPost 和 Request)......
Page 對象的 Page 屬性,提供了對頁面和布局頁之間共享的資料的類似屬性通路。
可以對 Page 屬性使用(添加)自己的屬性:
- Page.Title
- Page.Version
- Page.anythingyoulike
頁面屬性是非常有用的。例如,在内容檔案中設定頁面标題,并在布局檔案中使用:
@{
Layout="~/Shared/Layout.cshtml";
Page.Title="Home Page"
}
<h1>Welcome to runoob.com</h1>
<h2>Web Site Main Ingredients</h2>
<p>A Home Page (Default.cshtml)</p>
<p>A Layout File (Layout.cshtml)</p>
<p>A Style Sheet (Site.css)</p>
<!DOCTYPE html>
<html>
<head>
<title>@Page.Title</title>
</head>
<body>
@RenderBody()
</body>
</html
10.Pages - 檔案
如果沒有 App_Data 檔案夾,請建立一個。在 App_Data 檔案夾中,建立一個名為 Persons.txt 的檔案。
檔案内容為:
George,Lucas
Steven,Spielberg
Alfred,Hitchcock
顯示文本檔案中的資料
使用 Server.MapPath 找到确切的文本檔案的路徑。
使用 File.ReadAllLines 打開文本檔案,并讀取檔案中的所有行到一個數組中。
數組中的每個資料行中的資料項的資料被顯示。
@{
var dataFile = Server.MapPath("~/App_Data/Persons.txt");
Array userData = File.ReadAllLines(dataFile);
}
<!DOCTYPE html>
<html>
<body>
<h1>Reading Data from a File</h1>
@foreach (string dataLine in userData)
{
foreach (string dataItem in dataLine.Split(','))
{@dataItem <text> </text>}
<br />
}
</body>
</html>
11.Web Pages - 幫助器(Web 幫助器大大簡化了 Web 開發和常見的程式設計任務)
可以使用存放在 .cshtml 檔案中的 Razor 文法建構自己的幫助器,或者使用内建的 ASP.NET 幫助器。
WebGrid 幫助器
var grid = new WebGrid(data);
@grid.GetHtml();
Chart 幫助器
Chart 幫助器顯示的資料來源可以是數組、資料庫或者檔案。
根據數組資料顯示圖表:
@{
var myChart = new Chart(width: 600, height: 400)
.AddTitle("Employees")
.AddSeries(chartType: "column",
xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
yValues: new[] { "2", "6", "4", "5", "3" })
.Write();
}
根據資料庫建立圖表: 略.......
根據 XML 資料建立圖表: 略.......
WebMail 幫助器
WebImage 幫助器
第三方幫助器
————安裝幫助器
12.Web Pages - 釋出網站
............