最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

十分鐘就能學(xué)會的ASP.NET MVC 5教程

2023-01-22 23:19 作者:CSDN首席噴子  | 我要投稿

ASP.NET MVC是在ASP.NET基礎(chǔ)上,應(yīng)用模型-視圖-控制器(Model-View-Controller,MVC)概念的Web框架。所謂的MVC,是一種軟件設(shè)計(jì)模式,目的是將邏輯代碼和界面代碼分開,提升代碼可維護(hù)性的技術(shù),包括以下幾個(gè)部分:

(1)模型:模型是界面數(shù)據(jù)的抽象表示,包括界面上的數(shù)據(jù)和對應(yīng)的操作邏輯。而對于這些數(shù)據(jù)如何表示,模型并不理會。

(2)視圖:視圖是呈現(xiàn)給用戶的界面,可以是HTML、WinForm等。模型從控制器接收來自模型的數(shù)據(jù)用以渲染。

(3)控制器:控制器接收視圖傳來的操作指令,調(diào)用操作所需的模型,根據(jù)結(jié)果渲染對應(yīng)的視圖。


圖1? ASP.NET MVC結(jié)構(gòu)示意圖

相對于模仿WinForm的WebForm,MVC更符合網(wǎng)頁的結(jié)構(gòu),理解起來要更容易。

1??? ?工程結(jié)構(gòu)

ASP.NET MVC的工程結(jié)構(gòu)是定死的,如果不是這個(gè)結(jié)構(gòu),應(yīng)用就沒法執(zhí)行:

(1)首先必須得包含一個(gè)配置文件Web.config,并導(dǎo)入System.Web.Mvc程序集:


(2)包含一個(gè)主應(yīng)用程序文件Global.asax,其控制MVC路由。

(3)包含一個(gè)名為Controllers的文件夾,其下放置控制器類定義,名字必須都是xxxController。

(4)包含一個(gè)名為Views的文件夾,包含視圖文件,且必須位于對應(yīng)的控制器名文件夾下,比如DefaultController有一個(gè)名為Index的視圖,文件夾結(jié)構(gòu)就是Views/Default/Index.aspx。

2? 路由

從一個(gè)普通的ASP.NET程序變成一個(gè)MVC程序需要在Global.asax的Application_Start方法中注冊路由,代碼如下:

其創(chuàng)建了一個(gè)名為Default的路由表項(xiàng),內(nèi)容為"{controller}/{action}/{id}",這個(gè)內(nèi)容會被MVC程序集自動映射到指定的控制器。默認(rèn)路由為/Home/Index/。

3? 控制器

控制器定義全部位于controllers文件夾下,其所有的公有方法都對應(yīng)一個(gè)視圖。如果不想被視為視圖方法,需將方法修飾符改為protected或private;也可為方法添加NonAction屬性??刂破鞅仨毨^承自System.Web.Mvc.Controller類,視圖方法的簽名一般是

public ActionResult ViewName()

Controller類有一個(gè)名為View的靜態(tài)方法,能夠渲染指定的視圖。如果View方法沒有參數(shù),那么它返回ViewName.aspx對應(yīng)的視圖輸出。如有參數(shù),則第一個(gè)參數(shù)為希望輸出的視圖名稱,第二個(gè)可選參數(shù)為強(qiáng)類型視圖的模型。

4??? ?視圖

ASP.NET MVC的視圖是一個(gè)后綴名為aspx的模板??刂破髟谝晥D方法中,可以訪問一個(gè)名為ViewData的詞典,以向視圖中添加數(shù)據(jù)。視圖代碼如下所示:

可見ViewData原封不動地傳入了ViewPage類,可以像WebForm中一樣訪問其內(nèi)容,但是這種方法并沒有完全體現(xiàn)“模型”對視圖的抽象作用。更好的方法是建立視圖模型類,然后使用強(qiáng)類型:

可以在控制器中,根據(jù)用戶傳入的數(shù)據(jù),生成合適的視圖模型,渲染對應(yīng)的視圖。模型對象使用Model成員變量獲取引用。

注意,如果使用強(qiáng)類型視圖,必須在Views文件夾下面再放置一個(gè)web.config配置文件,內(nèi)容為:

5 ?異步

如果要調(diào)用一些訪問時(shí)間很長的操作,必須使用異步以減少CPU占用。ASP.NET MVC 4及以上版本支持基于Task的異步操作,要求控制器必須繼承自AsyncController類,且視圖名稱的后面必須加上Async才能被識別,如:

在調(diào)用GetStudent的過程中,IIS服務(wù)線程將被重用以服務(wù)其它客戶端請求,函數(shù)調(diào)用會委托給其它CLR線程,從而提升性能。

6? RESTful

Controller有一個(gè)名為Json的靜態(tài)方法,可以將具有Serializable屬性的object對象序列化成JSON返回客戶端,從而構(gòu)建REST風(fēng)格服務(wù):

如果要構(gòu)建基于XML的REST服務(wù),則必須自行擴(kuò)展一個(gè)ActionResult類:


十分鐘就能學(xué)會的ASP.NET MVC 5教程的評論 (共 條)

分享到微博請遵守國家法律
临潭县| 泽库县| 临泉县| 修水县| 中卫市| 凤庆县| 大英县| 达孜县| 璧山县| 大悟县| 蛟河市| 浠水县| 台北县| 墨竹工卡县| 六枝特区| 大庆市| 清徐县| 陇西县| 吴江市| 海口市| 松阳县| 蕉岭县| 梨树县| 金昌市| 驻马店市| 抚松县| 隆化县| 云浮市| 德钦县| 子洲县| 河津市| 平和县| 石阡县| 长白| 大安市| 西乌珠穆沁旗| 慈溪市| 新化县| 革吉县| 吐鲁番市| 白水县|