ASP.NET 是一個開發框架,用於經過 HTML、CSS、JavaScript 以及服務器腳原本構建網頁和網站。css
ASP.NET 支持三種開放模式:html
Web Pages、MVC (Model View Controller) 以及 Web Forms:jquery
MVC 是三個 ASP.NET 開發模型之一。web
MVC 是用於構建 web 應用程序的一種框架,使用 MVC (Model View Controller) 設計:數據庫
MVC 模型同時提供對 HTML、CSS 以及 JavaScript 的完整控制。編程
MVC 模型經過三個邏輯層來定義 web 應用程序:安全
模型(Model)服務器
模型(Model)是應用程序中用於處理應用程序數據邏輯的部分。app
一般模型對象在數據庫中存取數據。框架
View(視圖)
View(視圖)是應用程序中處理數據顯示的部分。
一般從模型數據中建立視圖。
控制器
控制器是應用程序中處理用戶交互的部分。
一般控制器從視圖讀取數據、控制用戶輸入,並向模型發送數據數據。
MVC 的這種拆分有助於咱們管理複雜的應用程序,由於您可以在同一時間關注一個方面。例如,您能夠在不依賴業務邏輯的狀況下對視圖進行設計。同時對應用程序的設計也更加容易。
MVC 的這種拆分同時也簡化了分組開發。不一樣的開發人員可同時開發視圖、控制器邏輯和業務邏輯。
MVC 編程模型是與傳統的 ASP.NET (Web Forms) 相比更輕量級的替代方案。它是輕量級的高可測試性的框架,同時整合了全部已有的 ASP.NET 特性,好比模板頁、安全性和認證。
典型的 ASP.NET MVC web 應用程序擁有以下文件夾內容:
全部 MVC 應用程序中的文件夾名稱都是相等的。MVC 框架基於默認的命名。控制器位於 Controllers 文件夾,視圖位於 Views 文件夾,模型位於 Models 文件夾。您沒必要在應用程序代碼中使用文件夾名稱。
標準化的命名減小了代碼量,同時有利於開發者對 MVC 項目的理解。
下面是對每一個文件夾內容的簡要描述:
App_Data 文件夾用於存儲應用程序數據。
咱們將在本教程稍後的章節向 App_Data 文件夾添加 SQL 數據庫。
Content 文件夾用於靜態文件,好比樣式表(CSS 文件)、圖表和圖像。
Visual Web Developer 會自動向 Content 文件夾添加一個 themes 文件夾。這個 themes 文件夾存放 jQuery 樣式和圖片。在這個項目中,您能夠刪除這個主題文件夾。
Visual Web Developer 同時向項目添加標準的樣式表文件:Content 文件夾中的文件 Site.css。這個樣式表文件是您但願改變應用程序樣式時須要編輯的文件。
咱們將在本教程的下一章中編輯這個樣式表文件 (Site.css)。
Controllers 文件夾包含負責處理用戶輸入和響應的控制器類。
MVC 要求全部控制器文件的名稱以 "Controller" 結尾。
Visual Web Developer 已建立好一個 Home 控制器(用於首頁和關於頁面)以及一個 Account 控制器(用於登陸頁面):
咱們將在本教程稍後的章節建立更多控制器。
Models 文件夾包含表示應用程序模型的類。模型存有並操做應用程序的數據。
咱們將在本教程稍後的章節建立模型(類)。
Views 文件夾存有與應用程序的顯示相關的 HTML 文件(用戶界面)。
Views 文件夾中含有每一個控制器對於的一個文件夾。
Visual Web Developer 已建立了一個 Account 文件夾、一個 Home 文件夾、一個 Shared 文件夾(在 Views 文件夾內)。
Account 文件夾包含用於註冊並登陸用戶賬戶的頁面。
Home 文件夾用於存儲諸如首頁和關於頁之類的應用程序頁面。
Shared 文件夾用於存儲控制器間分享的視圖(模板頁和佈局頁)。
咱們將在本教程的下一章編輯這些佈局文件。
Scripts 文件夾存儲應用程序的 JavaScript 文件。
默認地,Visual Web Developer 在這個文件夾中放置標準的 MVC、Ajax 以及 jQuery 文件:
註釋:文件 "modernizr" 是用於在應用程序中支持 HTML5 和 CSS3 的 JavaScript 文件。
文件 _Layout.cshtml 表示應用程序中每一個頁面的佈局。它位於 Views 文件夾中的 Shared 文件夾。
打開這個文件,把其內容替換爲:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>@ViewBag.Title</title> <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"></script> <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")"></script> </head> <body> <ul id="menu"> <li>@Html.ActionLink("Home", "Index", "Home")</li> <li>@Html.ActionLink("Movies", "Index", "Movies")</li> <li>@Html.ActionLink("About", "About", "Home")</li> </ul> <section id="main"> @RenderBody() <p>Copyright W3schools 2012. All Rights Reserved.</p> </section> </body> </html>
在上面的代碼中,HTML 幫助器用於修改 HTML 輸出:
@Url.Content() - URL 內容在此處插入。
@Html.ActionLink() - HTML 連接在此處插入。
咱們將在本教程稍後的章節講解 HTML 幫助器。
在上面的代碼中,由紅色標記的代碼是使用 Razor 標記的 C#。
@ViewBag.Title - 在此處插入頁面標題。
@RenderBody() - 此處呈現頁面內容。
Shared 文件夾(位於 Views 文件夾內)中的 _ViewStart 文件包含如下內容:
@{Layout = "~/Views/Shared/_Layout.cshtml";}
這段代碼被自動添加到由應用程序顯示的全部視圖。
若是刪除該文件,則必須向全部視圖添加這段代碼。
您將在本教程稍後的章節學到更多有關視圖的知識。
Controllers 文件夾包含負責處理用戶輸入和響應的控制器類。
MVC 要求全部控制器的名稱必須以 "Controller" 結尾。
在咱們的例子中,Visual Web Developer 已建立如下文件:HomeController.cs(用於首頁和關於頁面)和 AccountController.cs (用於登陸頁面):
web 服務器一般會將進入的 URL 請求直接映射到服務器上的磁盤文件。例如:某個 URL 請求(好比 "http://www.w3school.com.cn/index.asp")將映射到服務器根目錄上的文件 "index.asp"。
MVC 框架的映射方式有所不一樣。MVC 將 URL 映射到方法。這些方法在類中被稱爲「控制器」。
控制器負責處理進入的請求、處理輸入、保存數據、並把響應發送回客戶端。
Views 文件夾存儲的是與應用程序顯示(用戶界面)相關的文件(HTML 文件)。根據語言的不一樣,這些文件的擴展名多是 html、asp、aspx、cshtml 以及 vbhtml。
Views 文件夾包含每一個控制器對應的一個文件夾。
Visual Web Developer 已建立了一個 Account 文件夾、一個 Home 文件夾、一個 Shared 文件夾(在 Views 文件夾內)。
Account 文件夾包含用於註冊並登陸用戶賬戶的頁面。
Home 文件夾用於存儲諸如首頁和關於頁之類的應用程序頁面。
Shared 文件夾用於存儲控制器間分享的視圖(模板頁和佈局頁)。
可以在 Views 文件夾中找到如下 HTML 文件類型:
文件類型 | 擴展名 |
---|---|
純 HTML | .htm or .html |
經典 ASP | .asp |
經典 ASP.NET | .aspx |
ASP.NET Razor C# | .cshtml |
ASP.NET Razor VB | .vbhtml |
Visual Web Developer 帶有免費的 SQL 數據庫,名爲 SQL Server Compact。
本教程所需的這個數據庫可以經過如下幾個簡單的步驟來建立:
* 若是選項中沒有 SQL Server Compact Local Database,則表示您還沒有在計算機上安裝 SQL Server Compact。請經過如下連接安裝:SQL Server Compact
向 Web.config 文件中的 <connectionStrings> 元素添加以下元素:
<add name="MovieDBContext" connectionString="Data Source=|DataDirectory|\Movies.sdf" providerName="System.Data.SqlServerCe.4.0"/>
MVC 模型包含全部應用程序邏輯(業務邏輯、驗證邏輯、數據訪問邏輯),除了純視圖和控制器邏輯。
經過 MVC,模型可保存並操做應用程序數據。
運行:Install-Package Microsoft.AspNet.Web.Optimization後從新生成項目
本教程所需的數據庫控制器可以經過如下幾個簡單的步驟來建立:
Visual Web Developer 將建立以下文件:
如下文件會被自動地在 Movies 文件夾中建立:
1.可使用IDE自帶的發佈工。
從開發機上把您的網站(全部文件夾和內容)複製到遠程主機(服務器)上的應用程序文件夾。
若是 App_Data 文件夾中包含測試數據,請不要複製這個 App_Data 文件夾。
在遠程服務器上的應用程序根目錄中建立 bin 文件夾。(若是您已安裝幫助器,則 bin 文件夾已經存在)
從您的文件夾中複製如下全部文件:
C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies
C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies
到遠程服務器上的 bin 文件夾。
若是您的應用程序使用了 SQL Server Compact 數據庫(App_Data 文件夾中的 .sdf 文件),那麼您必須複製 SQL Server Compact DLL 文件:
從您的文件夾複製如下全部文件:
C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Private
到遠程服務器上的 bin 文件夾。
建立或編輯應用程序中的 Web.config 文件:
您的 App_Data 文件夾中有沒有包含測試數據的 .sdf 文件?
您是否但願將測試數據發佈到遠程服務器?
大多數時候是不但願。
若是您不得不復制 SQL 數據文件(sdf 文件),那麼您應該刪除數據庫中的全部數據,而後把這個空的 .sdf 文件從開發機複製到服務器。