asp.net簡述WP開發模式

詳情請參考菜鳥教程:http://www.runoob.com/aspnet/aspnet-tutorial.htmlcss

1.ASP.NET 是一個使用 HTML、CSS、JavaScript 和服務器腳本建立網頁和網站的開發框架。html

2.ASP.NET 支持三種不一樣的開發模式:Web Pages(Web 頁面)、MVC(Model View Controller 模型-視圖-控制器)、Web Forms(Web 窗體)數據庫

 其中,Web Pages 是開發 ASP.NET 網站最簡單的開發模式。express

   使用 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>&copy; 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 = "username@example.com"; WebMail.Password = "your-password"; WebMail.From = "your-name-here@example.com"; }

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>&nbsp;</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 - 發佈網站

............

相關文章
相關標籤/搜索