一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

ASP.NET MVC 入門介紹 (上)

  參考文章 ASP.NET MVC Overview.

  1. MVC模式

  MVC模式是一種軟件架構模式。它把軟件系統(tǒng)分為三個部分:模型(Model),視圖(View)和控制器(Controller)。MVC模式最早由Trygve Reenskaug在1974年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程序語言Smalltalk發(fā)明的一種軟件設計模式。MVC模式的目的是實現(xiàn)一種動態(tài)的程序設計,使后續(xù)對程序的修改和擴展簡化,并且使程序某一部分的重復利用成為可能。除此之外,此模式通過對復雜度的簡化,使程序結構更加直觀。軟件系統(tǒng)通過對自身基本部份分離的同時也賦予了各個基本部分應有的功能。   

  模型(Model) “數據模型”(Model)用于封裝與應用程序的業(yè)務邏輯相關的數據以及對數據的處理方法。“模型”有對數據直接訪問的權力,例如對數據庫的訪問。“模型”不依賴“視圖”和“控制器”,也就是說,模型不關心它會被如何顯示或是如何被操作。但是模型中數據的變化一般會通過一種刷新機制被公布。為了實現(xiàn)這種機制,那些用于監(jiān)視此模型的視圖必須事先在此模型上注冊,從而,視圖可以了解在數據模型上發(fā)生的改變.

  視圖(View) 視圖層能夠實現(xiàn)數據有目的的顯示(理論上,這不是必需的)。在視圖中一般沒有程序上的邏輯。為了實現(xiàn)視圖上的刷新功能,視圖需要訪問它監(jiān)視的數據模型(Model),因此應該事先在被它監(jiān)視的數據那里注冊。

  控制器(Controller) 控制器起到不同層面間的組織作用,用于控制應用程序的流程。它處理事件并作出響應。“事件”包括用戶的行為和數據模型上的改變。

  在最初的JSP網頁中,像數據庫查詢語句這樣的數據層代碼和像HTML這樣的表示層代碼混在一起。經驗比較豐富的開發(fā)者會將數據從表示層分離開來,但這通常不是很容易做到的,它需要精心地計劃和不斷的嘗試。MVC從根本上強制性地將它們分開。盡管構造MVC應用程序需要一些額外的工作,但是它帶給我們的好處是毋庸置疑的。

  首先,多個視圖能共享一個模型。如今,同一個Web應用程序會提供多種用戶界面,例如用戶希望既能夠通過瀏覽器來收發(fā)電子郵件,還希望通過手機來訪問電子郵箱,這就要求Web網站同時能提供InterNET界面和WAP界面。在MVC設計模式中,模型響應用戶請求并返回響應數據,視圖負責格式化數據并把它們呈現(xiàn)給用戶,業(yè)務邏輯和表示層分離,同一個模型可以被不同的視圖重用,所以大大提高了代碼的可重用性。

  其次,控制器是自包含(self-contained)指高獨立內聚的對象,與模型和視圖保持相對獨立,所以可以方便的改變應用程序的數據層和業(yè)務規(guī)則。例如,把數據庫從MySQL移植到Oracle,或者把RDBMS數據源改變成LDAP數據源,只需改變控制器即可。一旦正確地實現(xiàn)了控制器,不管數據來自數據庫還是LDAP服務器,視圖都會正確地顯示它們。由于MVC模式的三個模塊相互獨立,改變其中一個不會影響其他兩個,所以依據這種設計思想能構造良好的少互擾性的構件。

  此外,控制器提高了應用程序的靈活性和可配置性。控制器可以用來連接不同的模型和視圖去完成用戶的需求,也可以構造應用程序提供強有力的手段。給定一些可重用的模型和視圖,控制器可以根據用戶的需求選擇適當的模型機型處理,然后選擇適當的的視圖將處理結果顯示給用戶。

  2. Hello world 之 ASP.NET MVC 3

  如果還沒有開發(fā)環(huán)境,先在這里下載Visual Studio 2010和mvc3. 新建一個MVC3項目,選擇Razor模板引擎。VS已經建好了基本的目錄結構和兩個默認的頁面。

image  查看下文件的代碼,可以看到Controllers中的類是處理一些邏輯過程,最終返回View用來生成頁面。Model中的代碼表示的是數據和一些基本的驗證規(guī)則,View通過Model中的數據來填充。運行下程序,可以看到一個基本的網站。MVC網站的運行過程是這樣的:

  1. 當第一個請求從客戶端發(fā)起的時候,首先執(zhí)行的是Global.asax中的Application_Start()方法來完成一些初始化工作,其中重要的一步是RegisterRoutes方法,這個方法指定了如何將url映射到具體的方法上,稍后詳解。

  2. 根據第一步中指定的映射表生成一個RouteData對象,利用這個對象來創(chuàng)建一個RequestContext對象。

  3. MvcRouteHandler創(chuàng)建一個MvcHandler,并將RequestContext對象傳給MvcHandler。

  4. MvcHandler對象利用RequestContext對象確定一個IControllerFactory對象來創(chuàng)建Controller對象。

  5. MvcHandler對象調用Controller對象的Execute()方法。

  6. Controller的ControolerActionInvoker對象決定調用controller的哪個具體的action方法。

  7. Action方法接受用戶參數,執(zhí)行方法,返回一個Result類型的對象。

  右擊Controller文件夾,新建一空Controller,命名為HelloWorld,將代碼改為如下:

public class HelloWorldController : Controller
{
public string Index()
{
return "Hello world";
}

public string Hello()
{
return "Hello everyone";
}

public string Hello2(string name)
{
return "Hello to you " + name;
}
}

NET技術ASP.NET MVC 入門介紹 (上),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: www.天天干.com| 日韩综合nv一区二区在线观看 | 在线播放12p| 日韩久久精品一区二区三区 | 2021国内精品久久久久影院 | 国产四虎免费精品视频 | 免费看一区二区三区 | 成年美女网站 | 久久久久久久国产a∨ | 久久精品视频播放 | 国产精品久久久久影院色 | xxxxx在线观看 | 亚洲黄v| 久久久久久久久性潮 | 国内精品美女久久久久 | 成年午夜视频免费观看视频 | 97夜夜澡人人爽人人喊一欧美 | 成年美女黄网站色大片免费软件看 | 亚洲第一视频 | 久久影院精品 | 国产在亚洲线视频观看 | 亚洲精品视频区 | 好吊色青青青国产欧美日韩 | 亚洲精品美女久久久久网站 | 成人精品一区二区久久 | 一本色道久久88亚洲精品综合 | 日韩黄色毛片 | 国产在线视频91 | 一二三四视频社区在线中文 | 一本色道加勒比海在线 | 精品九九久久 | aⅴ一区二区三区无卡无码 aaaaaa精品视频在线观看 | 亚洲伊人久久大香线蕉啊 | 国产在亚洲线视频观看 | 日本高清加勒比 | 性夜影院爽黄e爽痛轻点www | 成人免费在线视频 | 国内精品久久久久影院网站 | 精品福利在线播放 | 九一国产精品视频 | 一级做a |