ASP.Net MVC學習(一)

來源:互聯網
上載者:User

標籤:對話方塊   上進   模板   業務   對象傳遞   val   測試   邏輯   學習   

 

MVC 設計模式將應用程式分解成3個主要部分: Model, View, Controller(模型、視圖、控制器)

Model - 模型代表一系列類用來描述商務邏輯,比如業務模型以及資料訪問操作,再比如資料模型。同時也定義了對資料如何進行處理的商務規則。

View - 視圖代表的是UI部分,像CSS、jquery、html等。它主要的職責是展現從controller接受到資料或模型。

Controller - 控制器職責在於處理傳入的請求。它接受使用者通過視圖的輸入,然後對使用者輸入的資料模型進行處理,最終通過視圖將結果渲染給使用者。

一、建立一個Asp.Net MVC項目

(1)開啟Visual studio 點“檔案”->建立->項目。

(2)選擇Web 應用程式,輸入項目名稱,選擇存放路徑,點擊確定。

(3)選擇MVC 模板

(4) 選擇Change Authentication(改變授權),彈出對話方塊中選擇“No Authentication”,並點擊確定。

(5)建立控制器,在資源管理員中,右擊controller檔案夾,選擇添加->Controller(控制器)

 

輸入控制器的名稱”TestController“,點擊添加。

在這一步驟中,要特別注意不能刪除名稱中的” Controller”關鍵字。

(6)建立行為方法

開啟建立的TestController 類,可以發現已產生的Index 方法,改變輸出:

(7)運行並測試 按 F5 鍵,在地址欄中以“ControllerName/ActionName”這樣的形式輸入,需要注意的輸入控制器名稱時,不能輸入”Controller“只輸入”Test”。

 

二、問題補充

(1)Action(行為) 方法是一個Controller內建的public類型的方法,能夠接收並處理使用者的請求,上例中,Index方法返回了一個字串類型的響應。非public方法無法在Web中調用。如果我們需要其他函數來完成一些特定功能,可以用Action Method屬性修飾。

(2)View是與放置在特定目錄下的Controller相關。這個特定檔案夾是以”ControllerName”命名的,並且放在View檔案夾內,如果將View 放在Shared檔案夾中,所有的Controller都可用。

 

(3)ASP.NET MVC的view和Controller不是嚴格的匹配的,一個Action Method可以引用多個view,而一個View也可以被一個Action方法使用。

(4)ActionResult子類之間的關係表

(5)從Controller到View的資料傳遞可以通過ViewData和ViewBag

ViewBag:

ViewBag是ViewData的動態封裝器,相當於在ViewData的基礎上進行了封裝處理。

ViewBag的定義:

ViewData的定義:

兩者的區別:

a.ViewData是字典類型,賦值方式用字典方式,通過key值讀取對應的value,ViewData[“myName”]

b.ViewBag是動態類型,使用時直接通過屬性賦值即可,ViewBag.myName

c.ViewData和ViewBag只在當前Action中有效,等同於ViewViewData和ViewBag中的值可以互相訪問

d.ViewData和ViewBag中的值可以互相訪問

兩者的缺點:

a.效能問題;ViewData中的值都是物件類型,使用之前必須強制轉換為合適的類型。會添加額外的效能負擔。

b.沒有型別安全就沒有編譯時間錯誤,如果嘗試將其轉換為錯誤的類型,運行時會報錯。良好的編程經驗告訴我們,錯誤必須在編譯時間捕獲。

c.資料發送和資料接收之間沒有正確的串連;MVC中,Controller和View是鬆散的串連的。Controller是無法捕獲View變化,View也無法捕獲到Controller內部發生的變化。從Controller傳遞一個ViewData或ViewBag的值,當開發人員正在View中寫入,就必須記錄從Controller中即將獲得什麼值。如果Controller與View開發人員不是相同的開發人員,開發工作會變得非常困難。會導致許多運行時問題,降低了開發效率。

(6)View強型別

這種方式可以實現資料的傳遞,但是已經違反了MVC的基本準則。根據MVC,V是View純UI,不包含任何邏輯層。

(7)ViewModel是ASP.NET MVC應用中隱式聲明的層。它是用於維護Model與View之間資料傳遞的,是View的資料容器。

具體的工作原理

a.Controller 處理使用者互動邏輯或簡單的判斷。處理使用者需求

b.Controller 擷取一個或多個Model資料

c.Controller 決策哪個View最符合使用者的請求

d.Controller 將根據Model資料和View需求建立並且初始化ViewModel對象。

e.Controller 將ViewModel資料以ViewData或ViewBag或強型別View等對象傳遞到View中。

f.Controller 返回View。

(8)身份認證和授權

ASP.Net MVC學習(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.