ASP.net 知識框架

ASP.net

第一章:ASP.NET介紹

1.搭建ASP.NET開發環境;

2.理解ASP.NET運行機制;

3.掌握ASP.NET兩種編碼方式javascript

4Http協議。php

關鍵點:html

1.BS的工做原理是什麼?java

 

 

2.服務器端開發技術有哪些?jquery

Asp 、aspx、jsp、phpweb

3.ASP.NET發展史。ajax

 

4.ASP.NET的特點和優。正則表達式

瀏覽器無關性、易於調試、運行效率高。 代碼邏輯分明(頁面顯示.aspx文件,業務邏輯.cs文件)數據庫

 

注(msIL或IL是.net框架中間語言縮寫)JIT(Just-in-time compiler)即時編譯器c#

5.建立一個ASP.NET程序【建立網站、編寫頁面、調試運行】。

6.解決方案組成。

7.搭建開發環境[IIS]。

8.ASP.NET程序的發佈。

9.asp.net運行機制。

 

10.ASP.NET頁面的結構。

11.Page指令。   Page指令定義了頁面用於編譯和解析的屬性 ,每一個aspx頁面只能有一個Page指令。

12.如何判斷回發和首次加載。


13.ASP.NET頁生命週期。
 Page_PreInit()  Page_Init() Page_Load()  Page_PreRender()   Page_Render() Page_Unload()

14.Web.Config配置文件的節點操做。


15.ADO.NET在ASP.NET中的使用。

第二章:頁面訪問控制

1.掌握RequestResponse對象的使用;

2.掌握Session對象的使用;

3.掌握Cookie對象的使用。

4.瞭解Application對象。

關鍵點:

1.HttpRequest對象封裝客戶端請求頁面或提交表單時提供信息;

2.Request對象經常使用屬性和方法

 

 

3.ReSponse對象經常使用屬性和方法[ContentType、Write()、Redirect()、End()]。

 

4.狀態管理【Cookie存儲於客戶端、Session存儲於服務器、Application應用程序級別的狀態保持】。

 

Cookie特徵 :存儲少許數據,存儲在客戶端,安全性差,只能存儲字符串。

 

 

 

Session特色:

位置:保存在服務器端,安全性高;類型:任意;Session保存的信息不與其餘用戶共享;

在用戶會話期間能夠記錄和監事用戶信息;當會話過時或終止時服務器會清除Session對象。

 

 

Application

 

 

Application特色:位置:服務器內存,執行速度快;使用範圍:整個應用程序;類型:任意;生命週期:從應用程序建立到銷燬。

第三章:表單和數據驗證

1.會使用控件完成頁面表單設計。

2.掌握經常使用第三方控件的使用。

3.會使用Page對象註冊腳本。

4.掌握驗證控件的使用。

關鍵點:

  1. Web控件分類【HTML控件、HTML服務器控件、Web服務器控件、用戶控件和自定義控件】。

 

  1. HTML控件和Web服務器控件的區別。

 

 

  1. 第三方控件【驗證碼控件】。

 

 

6.有效性驗證控制【RequiredFieldValidator非空驗證、CompareValidato用於比較控件的值、RangeValidator用於範圍驗證。RegularExpressionValidator正則表達式進行驗證的控件、CustomValidator自定義驗證、ValidationSummary驗證報告控件】。

 

郵箱驗證表達式:\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

 

第四章:搭建風格統一的Web站點

1.會使用母板頁搭頁面框架。

2.會使用導航控件完成導航功能。

3.能使用XML、手動編碼添加節點來控制樹形導航。

關鍵技術點:

1.母版頁的特別及母版頁的建立步驟。

2.獲取母版頁上控件的值【兩種方式:經過設置屬性、使用FindControl()方法】。

3.web.sitemap、SiteMapPath控件。

4.TreeView控件

第五章:系統架構搭建

1.理解三層架構在ASP.NET中的應用。

關鍵點:

1.三層架構中,各層的含議是什麼?。【表示層、業務邏輯層、數據訪問層】

2.ASP.NET搭建三層架構步驟。

3.三層架構的優點【適應變化、利於維護、適用於協做開、主流趨勢】。

4.數據庫中有主外鍵關係,模型層如何表示【兩種方式:1.爲實體添加外鍵ID;2.爲實體添加對象屬性。】

第六章:數據綁定與GridView

1.掌握數據綁定。

2.掌握DropDownList控件的使用。

3.掌握使用GridView控件完成數據的顯示功能。

關鍵點:

一、數據源控件【SqlDataSource、AccessDataSource、XmlDataSource、SiteMapDataSource】

2.後臺綁定數據源。

3.經常使用的數據綁定控件【DropDownList、GridView、DetailsView】。

4.DropDowList的經常使用屬性和方法。

 

 

  1. GridView經常使用字段類型【BoundField、TemplateField(有五種模板:標頭、腳註、普通項、交替項、編輯模式)、ButtonField 字段、CommandField字段、HyperLinkField字段、ImageField字段、CheckBoxField字段】。

 

 

 

 

 

 

光棒效果

 

多選效果

 

 

6.Eval()方法和Bind()方法的區別。7.Commandname設置自定義命令。

第七章:GridView深刻

1.掌握獲取GridView單元格數據。

2.掌握GridView基於單元格的更新。

3.掌握GridView經常使用事件處理。

4.掌握GridView中的數據刪除。

關鍵點:

  1. 經過行、列獲取單元格數據。

 

  1. GridView的兩個重要屬性

 

 

 

  1. 設置模板列。

 

  1. 添加命令按鈕。

 

5.RowEditing事件【GridViewEditEventArgs對象屬性NewEditIndex、Cancel】。

5.HiddenField控件。

 

 

 

  1. RowUpdating事件。

 

 

  1. RowCancelingEdit事件。

 

  1. CommandName屬性【CommandArgument:引起事件源的命令參數、CommandName:引起事件源的命令名稱。】,CommandName的值【Cancel、Delete、Edit、Selec、Update】。

 

 

 

單選刪除

 

 

自定義刪除

 

多選刪除

 

 

備註,GridView實例大全

1. Gridview中無須編寫後臺代碼,直接實現增除刪改

 

2. Gridview中添加新記錄

 

3:在Gridview中實現編輯和更新操做

 

4:在Gridview中實現一次性更新全部記錄

 

 

5:在Gridview中固定表頭的實現

 

6:在Gridview中合併單元格的實現

 

7:在Gridview中將數據操做結果顯示在Footer

 

8:在Gridview中添加表頭

 

9:在Gridview中將數據導出

 

10:在Gridview中實現數據導入

 

11:在Gridview中實現嵌套功能

 

12:在Gridview中實現多層嵌套

 

13:在Gridview中實現排序

 

14:在Gridview中實現分頁

 

15Gridivew結合CheckBox控件的使用

 

16Gridview結合DropDownList控件的使用

 

17Gridview結合RadioButtom的使用

 

18Gridview內嵌DropDownList控件

 

19Gridview結合JS,在客戶端結合CheckBox的使用

 

20:在Gridview中設置數據行的背景顏色

 

21:在Gridview中設置數據行的事件

 

22:在Gridview中設置數據行的其餘屬性

 

23:在Gridview中索引主鍵的使用

 

 

 

 

 

 

 

第八章:第三方控件的使用

1.掌握第三方控件FCKeditorJS版日曆的使用。

2.掌握ASP.NET控件FileUpload的使用。

3.能編碼實現詳細信息頁面的更新、插入操做。

4.掌握Server對象的經常使用方法。

關鍵點:

  1. FCKeditor的配置。

n 下載FCKeditor。要下載FCKeditor2.4.2.zip和FCKEditor.NET版本的2個zi包

說明:FCKeditor2.4.2.zip是其最新的JavaScript文件和圖片。FCKeditory.NET.zip是ASP.NET調用的DLL在裏面。

n 分別解壓後把FCKeditory2.4.2.zip裏面的fckeditor目錄整個複製到項目中。

n 解壓FCKeditor.NET.zip包後在FCKeditor.net_2.2\bin\Debug目錄打到FredCK.FCKeditoryv2.dll。其它文件沒用,把此dll文件複製到項目中的bin目錄中。

n 引用FredCK.FCKeditorv2.dll.

第一步:

 

第二步:

 

n 導入到工具箱

在「工具箱」下右鍵

 

 

 

 

n 拖拽FCKeditor到頁面上

 

n 配置WebConfig

 

說明:BasePath是fckeditor所在路徑,fckeditor因爲咱們直接放網站目錄下這樣寫就能夠,若是您的網站多放幾層適當調整便可。 UserFilesPath是全部上傳的文件的所在目錄。爲何要設置成/Files這樣而不是~/Files,由於FCKeditor使用這個值來返回你上傳後的文件的相對路徑到客戶端。不然的話客戶訪問的時候就會取客戶的機器目錄而不是http形式的目錄。建議:Files要單獨作wwwroot目錄下的一個站點比較好,和咱們的站點FCKEditor平行。不要把它放FCKEditor裏,爲何呢?由於Files是要讓客戶有寫的權限的,若是放FCKEditor下很危險。

n Files目錄要有寫的權限。你根據本身網站需求設置那個賬號,本文爲方便設置User實際中你可能用ASP.NET賬號更合理。

 

n 修改fckeditor/fckconfig.js文件

 

n 下面以上傳圖片示例說明如何使用

 

點「瀏覽服務」

 

彈出窗口很容易報錯

 

 

若是報錯XML request error: Internal Server Error(500),極可能就是目錄路徑不對和寫權限沒有。

選擇圖像

 

最後效果

 

  1. Calendar日期控件經常使用屬性和事件

 

  1. JS版日曆。

l 下載最新的zip(My97DatePickerBeta.zip)

l 解壓後放到網站裏面。

 

 

l 在頁面中引出js

 

l 效果以下

 

 

 

  1. FileUpload類的經常使用屬性和方法。

 

 

  1. Server對象經常使用方法

 

 

 

 

 

第九章:DataListRepeater控件

1.掌握使用DataList控件顯示數據。

2.ViewSate

3.會使用Repeater控件精確顯示內容。

關鍵點:

 

  1. DataList模板

 

 

 

  1. DataList重要屬性。

 

  1. DataList重要事件。

 

 

  1. ViewState頁面級的狀態保持。

 

 

 

  1. Repeater控件是一個容器控件、效率高,不會自動生成任何HTML代碼。

 

 

 

第十章:web站點的配置與部署

1.可以使用Web.config存儲數據庫鏈接。

2.會使用站點管理工具設置站點配置。

3.能使用Visual Studio站點發布工具發佈Web站點。

關鍵點:

1.ASP.NET的兩種配置文件:maching.config、web.config。2.自寫下義錯誤配置節點。3.調試和運行時的配置。4.身份驗證和受權:身份驗證方式:Windows、Passport、Form、None。5.受權:Allow容許;deny拒絕;特殊符號:「*」表明全部用戶,「?」表明匿名用戶。

第十一章:用戶自定義控件

1.掌握用戶控件的建立、使用。

2.掌握暴露用戶控件的屬性。

3.掌握自定義控件的概念。

4.瞭解服務器控件的生命週期人、呈現過程。

5.會從服務器控件控件派生自定義控件。

6.掌握在用戶控件中使用的自定義事件。

7.掌握自定義控件呈現頁面的方法。

8.掌握自定義控件呈現頁面的方法。

9.理解控件的視圖狀態和控件狀態。

關鍵點:

1.建立和使用用戶控件的步聚。2.用戶控件的關鍵代碼@Control批指令。3.用戶控件與頁面的區別。4.什麼是自定義控件【ASP.NET自定義控件(Custom Control)是編譯的服務器端控件,它將用戶界面和其它功能都封裝到可複用的包中(dll),如驗證碼控件或FCKeditor】。5.事件的定義【定義事件消息、定義委託類型】。6.事件訪問器。7.htmlTextWriter類。

第十二章:WebService

1.掌握Web Service的基本工做原理。

2.理解Web Service的優點。

3.掌握Web Service的開發和使用。

關鍵點:

1.web Service是可互操做的分佈式應用程序。

2.web Service使用Http和XMl進行通訊。

3.Web Service能夠穿越防火牆,真正實現自由通訊。

4.經過Soap實現異地調用。

5.webSerivce的開發步驟

建立Web Service

1、 打開vs2013,選擇文件->新建->項目。

 

2、 選擇【ASP.Net空web應用程序】,將其命名爲本身想的工程。

 

3、 而後右鍵點擊工程,添加->web服務。而後命名爲本身想要的服務名稱。

 

 

4、 在asmx文件中寫出本身想要開放的WebService方法。

 

5、 方法寫完後,右擊項目->發佈

 

選擇【文件系統】發佈,選擇發佈的物理地址,點擊【發佈】便可

 

在發佈的物理地址中會有這幾個文件。

 

打開IIS,右鍵點擊網站->新建網站

 

選擇網站名稱 ,剛剛發佈的物理地址,還有發佈的IP和端口,前後點完成。

 

而後網站就完成了。

 

、發佈WebService、調用WebService】

第十三章Asp.Net Http管道

第十四章:Ajax

1.什麼是ajax

2.ajax的工做原理。

3.ajax包含的技術。

4.XMLHttpRequest對象。

關鍵點:

  1. XMLHttpRequest對象初始化。2.XMLHttpRequest對象屬性和方法【onreadystatechange、readyState、responseText、responseXML、Status、StatusText、open()、send()】3.數據格式 XML、JSON、HTML

 

第十五章:MVC模式

1.準備工做

l 爲何要學習ASP.NET MVC?

l ASP.NET MVC學習路線:要有c#ADO.NEThtmljavascriptASP.Net WebForm的基礎。項目中實際用三層架構、ORM等訪問數據庫,可是此次的重點不是這些,所以咱們使用SQLHelper

l 講課使用Chrome瀏覽器,不考慮瀏覽器兼容性問題。

l 使用Visual Studio 2013.Net 4.5MS SQLServer2005及以上版本。

 

2.課程安排

MVC設計模式

Razor引擎

控制器詳解

校驗

MVC下的Ajax

路由

過濾器

MVC高級

3.MVC模式簡介

l MVC模式兩種理解:一種是表現模式,另一種是架構模式。它將應用程序分紅三個主要組件即:視圖(View)控件器(Controller)模型(Model)

l M: Model主要是存儲或者是處理數據的組件,Model實際上是實現業務邏輯層對實體類相應數據庫操做,如CRUD(create/read/update/delete)。它包括數據、驗證規則、數據訪問和業務邏輯等應用程序信息。ViewModel:視圖模型。V:View是用戶接口層組件。主要是將Model中的數據展現給用戶。ASPXASCX文件被用來處理視圖的職責。C:Controller處理用戶交互,從model中獲取數據並將數據傳給指定的View

4.MVC架構模式

 

 

 

5.ASP.Net的兩種開發方式

l WebForm的開發方式

服務器端控件
通常處理程序+html靜態頁+Ajax
通常處理程序+html模板

l ASP.Net MVC的開發方式
2009年第一個開源項目版本發佈
更加開發、更多的新特色、社區活躍
不會取代WebForm
底層跟WebForm都是同樣的。管道上不一樣的處理而已

 

6WebForm  VS  MVC

 

 

 

7.WebForm請求模型

 

 

8.Asp.Net MVC請求

 

 

9.借用WebFrom理解MVC

l 新建WebFrom項目

l Label的例子:耦合在一塊

l 在page類中添加一個List

l 在前臺用for循環遍歷顯示list

l 分層思想

l WebFromCodebehind僞分離仍是繼承關係

l MVC 代碼和頁面完全分離,控制器和視圖都是分別單獨的類型。耦合度最低

10.Asp.Net MVC第一個程序

l 新建一個MVC項目

l 認識Web項目中的Controller

l 認識Web項目中的View

l 認識Web項目中的Model

l 建立一個控制器HomeController,添加一個ShowDemo的方法,而後在方法中往視圖傳遞一個字符串。在ShowDemo方法上建立視圖,並在頁面中展現字符串內容。

11.控制器的約定大於配置

l Controller放到controllers文件夾中,而且命名方式以Controller結尾。

l 每一個Controller都對應View中的一個文件夾,文件夾的名稱跟Controller名稱相同。

l Controller中的方法名都對應一個View視圖(非必須,可是建議這麼作)並且View的名字跟Action的名字相同。

l 控制器必須是非靜態類,而且要實現IController接口。

l Controller類型能夠放到其餘項目中。

12.視圖的相關約定

l 全部的視圖必須放到Views目錄下。

l 不一樣控制器的視圖用文件夾進行分割,每一個控制器都對應一個視圖目錄。

l 通常視圖名字跟控制器的Action相對應(非必須)。

l 多個控制器公共的視圖到到Shared

13.ViewData傳遞數據載體

l ViewDataController的屬性,此屬性是繼承ControllerBase而來。

l ViewPage下也有一個ViewData的一個屬性。

l 控制器的Action方法執行完成後,返回ViewResult,而後MVC框架會執行ExcuteResult方法時,Controller中的ViewData數據傳遞給ViewPage類,其實就是把ControllerViewData賦值給ViewPage頁面的ViewData屬性。

14.用戶案例

l 用戶列表頁面(建立數據、使用SqlHelper),加載用戶列表數據到頁面中。【三層、EntityFramework等不是本次課程的重點】

l 用戶註冊頁面。(校驗後面再補充)

l 目地:熟悉MVC開發的方式、MVC下的請求處理響應的模型

15.HtmlHelper詳解

l 在ASP.Net MVC中微軟並無提供相似服務器端控件那種開發方式式,畢竟微軟的MVC就是傳統的請求處理響應的迴歸。因此以前的那種事件響應的模型,拋棄服務器端控件也理所固然。可是若是手寫Html標籤效率又比較低,可重用度比較低。

l 微軟爲開發人員快速開發前臺頁面提供了豐富的HtmlHelper的輔助類,輔助咱們快速開發前臺頁面,也提供了可擴展的接口,前臺頁面的標籤能夠能夠作到高度可重用。

l HtmlHelper還繼承了Model元數據的校驗、ViewDataViewBag數據綁定裝配等自動化功能,也是很是實用的功能

l HtmlHelper還提供了強類型標標籤更是在開發階段就實現編譯檢測。提升了編碼的效率。

l HtmlHelper還提供了模板編輯功能、頁面嵌套等功能,後面一一介紹。

16.HtmlHelper的演變。

l 在MVC中全部的請求都歸結到控制器下面的Action。因此全部的請求都是要指定一個具體的ActionUrl的格式是根據路由規則來定的。好比,默認路由規則中定義請求的地址的格式:{Controller}/{Action}/{id},則請求的url地址應該是:http://localhost/Home/Index/1

l 咱們能夠看到請求的地址再也不跟WebForm中的請求地址就是頁面的相對路徑。而在MVC中請求的地址是一個邏輯地址,而不是物理的路徑

l 在頁面中添加超級連接的時候href屬性就有了變化性。也就是當路由規則發生變化的時候,href屬性也必須跟着變化。

l 屏蔽路由規則的變化對a標籤等產生的影響,MVC給咱們提供了Url.Action()方法。可是依然很是笨重。

l 最完美的解決辦法就是:HtmlHelper.Action()

17.HtmlHelper各類方法介紹

l ActionLink

 

生成結果:

             

 

l RouteLink

 

生成結果:

 

l Form

 

l TextBox,Hidden

 

l TextArea

 

l CheckBox

 

l DropDownList

  dropDownListTextBox等控件不一樣,它使用的是select標記。它須要兩個值:在下拉列表框中現實的列表,和默認選項。而自動綁定一次只能綁定一個屬性,所以您須要根據要選擇是綁定列表,仍是默認選項。

DropDownList擴展方法的各個重載版本「基本上」都會傳遞到這個方法上:

 

若是沒有指定selectList,改方法將自動綁定列表,即從ViewData中查找name所對應的值。若是提供了selectlist,將自動綁定默認選項,即從selectList中找到Selected屬性爲trueselectedListItem

1:若是在Action方法中有以下代碼:

 

那麼輔助方法將率先從ViewData中獲取keylist的項,若是該項爲IEnumerable<SelectedListIItem>類型則綁定到下拉列表框中,不然將拋出InvalidOperationException。異常,因爲第二個SelectListItemSelectedtrue,則默認選中第二個。

2:若是Action中代碼以下:

 

那麼輔助方法將ViewData[「list」]綁定爲下拉框,而後從ViewData中獲取keyselected的項,並將下拉listValue值與該項的值相等的SelectListItem設爲默認選中項。

以上兩種方法儘管能夠實現DropDownList的正確顯示,可是並不是最佳實踐。在實際項目中,咱們更但願在代碼中使用強類型,例如上面例子中,SelectListItemTextValue原本就是User對象的NameAge屬性,然而上面的代碼卻絲毫體現不出這種對應關係。若是User列表是從數據庫或其餘外部資源中得到的,咱們難道還要用這種方式來綁定嗎?

 

 

這顯然是咱們所沒法容忍的。那麼什麼是最佳實踐呢?

ASP.NET MVCDropDownListListBox(都在html中使用select標記)準備了一個輔助類型:SelectListSelectList繼承自MultiSelectList,然後者實現了IEnumerable<SelectListItem>。也就是說,SelectList能夠直接做爲Html.DropDownList方法的第二個參數。

MultiSelectList包含四個屬性,分別爲:

  • Items:用於在select標記中出現的列表,一般使用option標記表示。IEnumerable類型。
  • DataTextField:做爲optiontext項,string類型。
  • DataValueField:做爲optionvalue項,string類型。
  • SelectedValues:選中項的value值,IEnumerable類型。

顯然,做爲DropDownList來講,選中項不可能爲IEnumerable,所以SelectList提供了一個新的屬性:

 

  • SelectedValue:選中項的value值,object類型。

同時,SelectList的構造函數以下所示:

 

  因而咱們的代碼變爲:

 

20.Html.Encode

 

21.HtmlHelper擴展

l 擴展方法的三個要素:靜態類、靜態方法、this關鍵字

l 案例:擴展自定義標籤

l 解決返回的標籤被HtmlEncode的問題

 

 

22.案例:用戶刪除和修改

l 實現用戶的刪除

l 在列表頁面添加一個修改列

l 實現點擊修改連接頁面跳轉的修改詳情頁面

l 實現修改頁面邏輯

l 體會雙向數據裝配:控制器的Action在執行以前會自動把請求中數據裝配到Action的方法參數裏面去或者是參數的屬性裏面去。控制器往視圖傳遞的數據會自動裝配到頁面的HtmlHelper生成的控制上去。

23.雙向數據的裝配

l 控制經過ViewData容器把數據傳遞到View以後,View在渲染Html標籤的時候會自動從ViewData中獲取數據進行填充標籤。

l 表單提交到控制器的時候,執行控制器的Action以前會自動將表單中的內容填充到方法的參數或者參數的屬性面去。

l 案例:用戶註冊

24.Razor引擎簡介

l 在MVC3.0版本的時候,微軟終於引入了第二種模板引擎:RazorRazor在減小代碼冗餘、增長代碼可讀性和vs智能感知方面,都有着突出的優點。Razor一經推出就深受全部Asp.Net開發者的喜好。

 

25.Razor引擎語法

l Razor文件類型:Razor支持兩種文件類型,分別是.cshtml.vbhtml,其中.csHtml的服務器代碼使用了C#的語法,.vbhtml的服務器代碼使用了vb.net的語法。

l @字符是Razor中的一個重要符號,它被定義爲Razor服務器代碼塊的開始符號

l 案例:在頁面中輸出當前日期

<span>@DataTime.Now.Tostring(「yyyy-MM-hh」)</span>

26. Razor語句塊

l 可使用@{code}來定義一段代碼塊。

l RaZor支持代碼混寫。在代碼塊中插入Html、在Html中插入Razor語句都是能夠的。

l 案例:For循環嵌套輸出html標籤

 

 

 

27.Razor頁面上輸出特殊字符串

l 輸出原生的字符串:@Html.Raw(html)

l 例如:@Html.Raw(「<h2>Razor</h2>」)

l HtmlString類型和MvcHtmlString類型字符串輸出

l 例如:IHtmlString html=new HtmlString("<font color='red'>文本</font>");

 

28.Razor引擎的註釋

l C#代碼塊能夠C#自帶的註釋符合:// /**/

l Razor服務器端註釋爲:@*  註釋內容  *@

29.Razor引擎的轉換數據類型

 

 

30. CKEditorasp.net mvc中的使用:

l 下載CKEditor     http://ckeditor.com/download

l 把解壓後的目錄拷貝到Content目錄中。

 

l ckEditorasp.net mvc中的使用就至關簡單了,只須要在腳本中執行CKEDITOR.replace(id);id 爲你須要擁有編輯功能的textareaid

View:

 

 

Controller:

 

這裏要注意[ValidateInput(false)]特性,它的目的是防止在提交時報「檢測到有潛在危險的客戶端輸入值」。

l 運行後的效果圖以下:

 

31.控制器詳解

l 控制器的約定:必須實現IController接口、必須以Controller爲結尾、必須非靜態類。

l 在Action中能夠訪問HttpContext中全部的相關數據:好比SessionCookie、也能夠設置響應總之跟WebFormPage類能作的,在Action中都能作。

l 控制器的Action的各類返回值。

 

 

 

 

 

 

32.深刻講解Controller

l 職責 :Controller負責將獲取Model數據並將Model傳遞給View對象,通知View對象顯示。

l 一個Controller能夠包含多個Action。每個Action都是一個方法,返回一個ActionResult實例。

l 一個Controller對應一個XXController.cs控制文件,對應在View中有一個XX文件夾。通常狀況一個Action對應一個Aspx頁面。

33.深刻講解Routing

l 在項目中咱們引用了System.web.Routing

l 微軟將此項目單獨出來,並無開源代碼。

l Routing的做用:肯定Controller 、肯定Action 、肯定其餘參數、根據識別出來的數據,將請求傳遞給ControllerAction

l MVC項目是URL請求驅動。

l 爲何訪問localhost/Home/Index會傳遞給HomeController中名爲indexaction(即HomeController類中的index方法)?怎麼實現的呢?

l Global.asax.cs文件中定義了路由的識別規則

 

l 咱們的URLlocalhost/home/index

l Localhost是域名,因此首先要去掉域名部分:home/index

l 對應了上面代碼中的這種URL結構:{controller}/{action}/{id}

l 由於咱們創建了這種URl結構的識別規則,因此可以識別出ControllerhomeactionindexId沒有則爲默認值」」。

MapRoute()方法

 

l MapRout參數介紹

 Name參數:規則名稱,能夠隨意起名,不能夠重名,不然會發生錯誤:路集合中已經存在名爲「Default」的路由。路由名必須是惟一的。

url參數:url獲取數據的規則,這裏不是正則表達式,將要識別的參數括起來便可,好比:{controller}/{action}。最少只須要傳遞nameurl參數就能夠創建一條Routing(路由)規則。好比實例中的規則徹底能夠改成:routes.MapRoute(「Default」,」{controller}/{action}」)

defaults參數:

url參數的默認值.若是一個url只有controller: localhost/home/

並且咱們只創建了一條url獲取數據規則: {controller}/{action}

那麼這時就會爲action參數設置defaults參數中規定的默認值. defaults參數是Object類型,因此能夠傳遞一個匿名類型來初始化默認值:

new { controller = "Home", action = "Index" } 實例中使用的是三個參數的MapRoute方法:

routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults );

constraints參數:

用來限定每一個參數的規則或Http請求的類型.constraints屬性是一個RouteValueDictionary對象,也就是一個字典表, 可是這個字典表的值能夠有兩種:

用於定義正則表達式的字符串。正則表達式不區分大小寫。

一個用於實現 IRouteConstraint 接口且包含 Match 方法的對象。 

經過使用正則表達式能夠規定參數格式,好比controller參數只能爲4位數字:

new { controller = @"\d{4}"}

l 經過第IRouteConstraint 接口目前能夠限制請求的類型.由於System.Web.Routing中提供了HttpMethodConstraint類, 這個類實現了IRouteConstraint 接口. 咱們能夠經過爲RouteValueDictionary字典對象添加鍵爲"httpMethod", 值爲一個HttpMethodConstraint對象來爲路由規則添加HTTP 謂詞的限制, 好比限制一條路由規則只能處理GET請求:

l httpMethod = new HttpMethodConstraint( "GET", "POST" )

完整的代碼以下:

l routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" }, // Parameter defaults new { controller = @"\d{4}" , httpMethod = new HttpMethodConstraint( "GET", "POST" ) } );

 

l URL路由實例講解

對於一個網站,爲了SEO 友好,一個網址的URL層次不要超過三層:

Localhost/{頻道}/{具體網頁}

其中域名第一層,頻道第二層,那麼最後的網頁就只剩下最後一層了。若是使用默認實例中的」{controller}/{action}-{其它參數}」的形式會影響網站的SEO

l URL路由實例講解。

  源碼在RouteConfig.cs

l Url實例總結

實現的功能:

(1) 訪問localhost/hotels/list-beijing-100,200-3會訪問酒店頻道的列表頁,並傳入查詢參數。

(2) 訪問localhost/hotels下面的任何其餘頁面地址,都會跳轉到酒店首頁。

(3) 訪問localhost下面的任何地址,若是未匹配上面2條,則跳轉到首頁。

  簡單總結:

(1) Routing規則是有順序(按照添加是的順序),若是一個URL匹配了多個Routing規則,則按照 第一個匹配的Routig規則執行。

(2) 因爲上面的規則,要將具體頻道的具體頁面放在最上方,將頻道首頁和網站首頁放在最下主。

(3) {*values}表示後面能夠任意的格式。

34.關於測試Routing

l 使用RouteDebug輔助類

l 在Global.asax添加以下代碼:

Protected void Application_Start()

{

RegisterRoutes(RouteTable.Routes);

RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

}

35.MVC驗證

l .NET框架中的System.ComponentModel.DataAnnotations命名空間包括了衆多可爲您所用的內置驗證特性,介紹用最多的其中的四個:

[Required][StringLength][Range][RegularExpression]

l 定義本身的定製驗證特性,而後應用它們。你能夠經過繼承自System.ComponentModel.DataAnnotations命名空間中的ValidationAttribute基類,定義徹底定製的特性。

l 服務器端校驗只須要在Action中校驗:ModelState.isValid屬性便可。True就是校驗經過,false反之不經過

l 要使用客戶端驗證,必須引入JS腳本支持(jquery的校驗)

l 添加語句

<%Html.EnableClientValidation();%>(MVC34中默認開啓)

l WebConfig中能夠設置全局客氣端校驗是否開啓或關閉

36.ASPNet MVC 下的Ajax

l 使用Jquery作相關的Ajax請求

 

 

l 使用微軟提供的Ajax請求腳本。

 

 

 

 

 

37.過慮器詳解

l 項目大一點總會有相關的AOP面向切面的組件,而MVC(特指:ASP.Net MVC,如下皆同)項目中呢Action在執行前或者執行後咱們想作一些特殊的操做(好比身份驗證,日誌,異常,行爲截取等),而不想讓MVC開發人員去關心和寫這部分重複的代碼那咱們能夠經過AOP截取實現,而在MVC項目中咱們就能夠直接使用它提供的Filter的特性幫咱們解決,不用本身實現複雜的AOp了。

 

 

l ActionFilterAttribute默認實現了IActionFilterIResultFilter。而ActionFilterAttribute是一個Abstract類型,因此不能直接使用,由於它不能實例化,因此咱們想使用它必須繼承一下它而後才能使用

l 案例:Action過濾

 

 

 

 

 

l AttributeUsage特性用於設置標籤

l Gloable Filter容許咱們設置全局過濾器。

 

 

 

l 異常過濾器:當咱們Mvc站點出現了異常的時候會自動執行異常過濾器裏面的方法。

 

 

 

 

 

 

38.區域詳解

l Asp.Net MVC 提供了區域的功能,能夠很方便的爲大型的網站劃分區域。

l 可讓咱們的項目不至於太複雜而致使管理混亂,有了區域後,每一個模塊的頁面都放入相應的區域內進行管理很方便。

l 在項目上右擊建立新的區域。

l 區域的功能相似一個小的MVC項目,麻雀雖小五臟俱全,有本身的控制器、模型、視圖、路由設置。

l 區域的路由設置是優先的。

39.頁面渲染

l 傳統的頁面嵌套都是採用iframe方式,這樣不利於SEO的優化,通常蜘蛛碰到Iframe是不進行抓取的,webForm中,採用的是用戶控制的方式,MVC 中採起頁面渲染

 

 

 

 

 

 

40.模板頁

l 模板頁必須放到共享的文件夾中。

l WebForm視圖引擎的模板頁跟以前的沒有什麼區別,也就是採用母板頁。

l Razor引擎引入渲染區域的概念。

l 全部頁面啓動的時候ViewStart文件夾先執行。

l RanderBodyRenderSection

l 實例

(一) 在Shared文件夾中建立_Layout3.cshtml

 

   ()建立一個頁面使用次模板

      

 

補充:Json

 JSON的全稱是」JavaScript Object Notation」,意思是JavaScript對象表示法,它是一種基於文本,獨立於語言的輕量級數據交換格式。XML也是一種數據交換格式,爲何沒有選擇XML呢?由於XML雖然能夠做爲跨平臺的數據交換格式,可是在JS(JavaScript的簡寫)中處理XML很是不方便,同時XML標記比數據多,增長了交換產生的流量,而JSON沒有附加的任何標記,在JS中可做爲對象處理,因此咱們更傾向於選擇JSON來交換數據。這篇文章主要從如下幾個方面來講明JSON

  1. Javascrip定義Json以及解析Json

 

  1. 經過序列化,把.net中的對象轉換成JSon

 

補充:正則表達式


正則表達式是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱爲「元字符」)。模式描述在搜索文本時要匹配的一個或多個字符串。

 

l C#經常使用的正則表達式

 

 

 

l Js經常使用的表達 式。

 

 

 

第十六章En

 

 

Jquery

第一章認識jQuery

第二章jQuery選擇器

 

1.  基本選擇器

2.  層次選擇器

3.  過濾選擇器

4.  表單選擇器

第三章jQuery中的DOM操做

1.查找節點

2.建立節點

3.插入節點

4.刪除節點

5.複製節點

6.替換節點

7.包裹節點

8.屬性操做

9.樣式操做

10.設置和獲取HTML、文本和值

11.遍歷節點樹

12.CSS-DOM操做

第四章jQuery對錶單、表格的操做及更多應用

1.表單應用

2.單行文本框應用

3.多行文本框應用

4.複選框應用

5.下拉框應用

6.表單驗證

7.表格應用

8.表格變色

9.表格展開關閉

10.表格內容篩選

 

第五章jQueryAjax的應用

1Ajax的優點和不足

2.Ajax的優點

3.Ajax的不足

4.AjaxXMLHttpRequest對象

5. jQuery中的Ajax 106

6. load()方法 106

7. $.get()$.post()方法

8.  $.getScript()$.getJson()

9. $.ajax()方法 120

10.序列化元素 123

11. jQuery中的Ajax全局事件

相關文章
相關標籤/搜索