asp.net mvc中最靈活的地方就是控制器,這裏能夠驗證數據,能夠跳轉視圖,還能夠訪問數據庫等等。因此,咱們要先從這裏提及。數據庫
1 控制器就是繼承了Controller的類,通常來講,類名後面都會增長"Controller"字樣,asp.net mvc是一個約定優先的框架,在這裏就能看到一點點端倪,接下來還要涉及到其餘約定mvc
2 這個控制器裏面,有一些方法,其中圖示的public而且返回值爲ActionResult的方法就是所謂的Action,能夠理解爲動做、行爲、功能等;圖示就是登陸功能。框架
3 在控制器中有各類元標記,如登陸驗證,HttpPost方法等;其中[Authorize]表示訪問該控制器的任何動做,都須要登陸,不然,則跳轉到登陸頁面;而咱們知道一個http請求,分爲get和post方法,[HttpPost]就是用來指定只容許post請求訪問的。asp.net
4 有時爲了程序的須要,會定義一些輔助方法,通常來講,這些方法是private的post
5 post方法中,通常會使用Model來保存數據,這個模型能夠驗證數據合法性,好比登陸時,用戶名不容許爲空,密碼應大於6位等;能夠用ModelState.IsValidate來判斷提交過來的數據是否合法,不合法的話,就返回。學習
6 在Action中能夠直接返回一個視圖,即return View(),而這個View()方法,重載多個方法,能夠代入上面說到的模型,如此一來,當提交的數據有誤時,直接返回時,原來的數據還會保留在原來頁面.net
7 上面說到,沒有指定相應的視圖名,可是仍舊可以正常返回,爲何?這個就是上面提到約定。若是不指定視圖名稱,則系統會到默認的視圖文件夾去尋找這個視圖,尋找視圖的會按照必定的順序遍歷,若是找到,則返回,不然往下尋找:首先搜索的是這個控制器對應的視圖文件夾,事實上是有一個名叫Register的視圖的,這樣就找到了blog
8 能夠這樣子指定返回的視圖名稱,仍然能夠帶入與視圖相應的Model繼承
9 這樣一來,在/Views/Account/文件夾下就找不到NoResource這個視圖了,怎麼辦?框架會找到公共視圖文件夾/Views/Shared/,圖示是有這個視圖的,因此上一步那樣返回也不會出錯;若是再找不到,那程序纔會報錯ip
10 控制器還能夠控制其餘方式的跳轉;這樣能夠指定到其餘控制器,圖示爲退出登陸功能,一旦退出,則跳轉到首頁控制器的Index動做,即首頁
11 實際上/Home/Index和/Home是同樣的,由於默認狀況下,只提供控制器的時候,框架會自動尋找Index方法,這個也是約定優先的另外一個例子
12 控制器概況就先介紹到這裏。祝您學習愉快!
本人原創,轉載請註明出處。更佳視覺排版請移步:http://t.cn/RPJist6