2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

ASP.NET MVC 開篇

 昵稱10504424 2014-09-25

MVC(Model-View-Controller,模型—視圖—控制器模式)用于表示一種軟件架構(gòu)模式。它把軟件系統(tǒng)分為三個基本部分:模型(Model),視圖(View)和控制器(Controller)。

那么MVC模式和我們熟悉的WebForm模式有什么不同呢?他的各個部分又是怎樣分工的呢?

一、WebForm請求方式


例如請求一個URL(http://www./Main/index.aspx),那么我們的WebForm程序會到網(wǎng)站根目錄下去尋找Main目錄下的index.aspx文件,然后由index.aspx頁面的CodeBehind文件(.CS文件)進行邏輯處理,其中包括到數(shù)據(jù)庫去取出數(shù)據(jù)(其中的經(jīng)過怎樣的BLL到DAL這里就不談了),然后再由index.aspx頁面來呈現(xiàn)給用戶。

二、MVC請求方式


 

在MVC中,客戶端的所請求的URL是被映射到相應(yīng)的Controller去,然后由Controller來處理業(yè)務(wù)邏輯,或許要從Model中取數(shù)據(jù),然后再由Controller選擇合適的View返回給客戶端。假如我們運行的ASP.NET MVC程序訪問的http://www./Home/Index這個URL,它訪問的其實是HomeController中的Index這個Action,見下圖:

image

其中public ActionResult Index()這個方法稱為Controller的Action,他返回的是ActionResult的類型。一個Controller可以有很多個Action。

那么一個URL是怎樣被定位到Controller中來的呢?我們先來看一下web.config文件,在web.config文件的httpModules配置節(jié)中,我們可以看到一個UrlRoutingModule:

<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

就是這個UrlRoutingModule來把URL定位到Controller中去的。而對于URL會被路由到哪一個Controller中去,這些我們是完全可以自己定義的。我們到Global.asax文件去看一下:

image

我們可以看到這里定義了一個名為"Default"的Route,還定義了默認的參數(shù)。

默認參數(shù)的意義在于,當我們訪問例如http://localhost:2176/的URL的時候,他會將不存在的參數(shù)用默認的參數(shù)補上,也就是相當于訪問http://localhost:2176/Home/Index一樣。

注意:我們知道在IIS中,我們訪問網(wǎng)站的根目錄的時候,如果我們不指定要訪問的路徑,IIS會自己根據(jù)在IIS中設(shè)置的默認文檔去訪問。例如我們訪問http://localhost:2176/這個URL的時候,IIS會去尋找網(wǎng)站根目錄下的Default.aspx文件(假設(shè)我們設(shè)置了IIS的默認文檔為Default.aspx)。而在ASP.NET MVC中對于類似http://localhost:2176/這樣的網(wǎng)站根目錄的路徑,并不會經(jīng)過Route的處理,所以我們看到我們建立的ASP.NET MVC程序的根目錄下有個Default.aspx文件,該文件就是用于處理前面的訪問根目錄的情況的。請不要刪除該文件。它會將http://localhost:2176/Default.aspx交由ASP.NET MVC來處理,具體請看Default.aspx.cs文件。

我們知道了一個URL是怎樣定位到相應(yīng)的Controller中去的了,那么View又是怎么被返回給客戶端的呢?我們從前面的截圖中看到,Controller中的Action方法中有個return View()的方法。默認情況下它會返回與Action同名的view.在ASP.NET MVC默認的視圖引擎(WebFormViewEngine)下,view是按如下路徑訪問的:

/Views/{Controller}/{Action}.aspx

也就是說對于http://localhost:2176/Home/Index這個路徑,在默認情況下,在Index這個Action中用return View()來返回view的時候,會去尋找/Views/Home/Index.aspx文件,如果找不到這個文件,就會去Share目錄中尋找:/Views/Share/Index.aspx,如果都找不到,就會拋出找不到View的異常。return View("lulu.aspx")來指定要返回哪一個view:/Views/Home/lulu.aspx。

那么為什么前面我們直接訪問Views/Home/Index.aspx這里文件的時候會出現(xiàn)404錯誤,說找不到文件呢?因為在MVC中,是不建議直接去訪問View的,所以我們建立的ASP.NET MVC程序在默認情況下就在Views目錄下加了一個web.config文件,內(nèi)容如下:

image

也就是訪問Views目錄下的所有的文件都會由System.Web.HttpNotFoundHandler來處理,所以請不要將資源文件(CSS、JS、圖片等)放到Views目錄中。如果你確實要放到Views目錄下的話,請修改Views/web.config文件。

此文章鏈接供大家參考:http://www.cnblogs.com/QLeelulu/archive/2008/09/30/1302462.html

作者:Raymond-Yang
出處:http://www.cnblogs.com/Raymond-YYC/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權(quán)利。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多