欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
ASP.Net MVC開(kāi)發(fā)基礎學(xué)習筆記:一、走向MVC模式

 ?。?)處理流程

  在傳統的WebForm模式下,我們請求一個(gè)例如http://www.aspnetmvc.com/blog/index.aspx的URL,那么我們的WebForm程序會(huì )到網(wǎng)站根目錄下去尋找blog目錄下的index.aspx文件,然后由index.aspx頁(yè)面的CodeBehind文件(.CS文件)進(jìn)行邏輯處理,其中或許也包括到數據庫去取出數據(其中的經(jīng)過(guò)怎樣的BLL到DAL這里就不談了),然后再由index.aspx頁(yè)面來(lái)呈現給用戶(hù)。

  綜上所述,在WebForm模式下:一個(gè)URL請求的是在服務(wù)器與該URL對應路徑上的物理文件(ASPX文件或其他),然后由該文件來(lái)處理這個(gè)請求并返回結果給客戶(hù)端。

 ?。?)開(kāi)發(fā)方式

  · 服務(wù)器端控件
  · 一般處理程序+Html靜態(tài)頁(yè)+Ajax
  · 一般處理程序+Html模板引擎

1.2 ASP.Net MVC的開(kāi)發(fā)模式

 ?。?)處理流程

  在A(yíng)SP.Net MVC中,客戶(hù)端所請求的URL是被映射到相應的Controller去,然后由Controller來(lái)處理業(yè)務(wù)邏輯,或許要從Model中取數據,然后再由Controller選擇合適的View返回給客戶(hù)端。再說(shuō)回前面我們運行的ASP.NET MVC程序訪(fǎng)問(wèn)的http://www.aspnetmvc.com/Home/Index這個(gè)URL,它訪(fǎng)問(wèn)的其實(shí)是HomeController中的Index這個(gè)Action。

 ?。?)顯著(zhù)特點(diǎn)

  · 2009年第一個(gè)開(kāi)源項目版本發(fā)布,至今已過(guò)去5年,發(fā)展逐漸完善
  · 更加簡(jiǎn)潔,更加接近原始的“請求-處理-響應”
  · 更加開(kāi)發(fā)、更多的新的特點(diǎn)、社區活躍
  · 不會(huì )取代WebForm
  · 底層跟WebForm都是一樣的,只是管道上不同的處理而已

二、MVC模式的兩種不同解讀

  MVC 模式兩種理解:一種是表現模式,另外一種是架構模式。它將應用程序分成三個(gè)主要組件即:視圖(View)、控制器(Controller)和模型(Model)?,F在,我們來(lái)看看M-V-C分別代表什么?
  M:Model 主要是存儲或者是處理數據的組件;Model其實(shí)是實(shí)現業(yè)務(wù)邏輯層對實(shí)體類(lèi)相應數據庫操作,如:CRUD。它包括數據、驗證規則、數據訪(fǎng)問(wèn)和業(yè)務(wù)邏輯等應用程序信息。(補充:ViewModel:視圖模型)

  V:View 是用戶(hù)接口層組件。主要是將Model中的數據展示給用戶(hù)。aspx和ascx文件被用來(lái)處理視圖的職責;

  C: Controller 處理用戶(hù)交互,從Model中獲取數據并將數據傳給指定的View;
 ?。?)MVC作為架構模式的理解
  作為架構模式時(shí),View的職責就是負責展示數據,而Controller則負責獲取View傳遞來(lái)的數據,然后調用業(yè)務(wù)邏輯層處理完成的數據傳遞給View進(jìn)行展示。而Model則處理業(yè)務(wù)邏輯,并把結果返回給Controller。從傳統三層架構上來(lái)看,View和Controller都屬于UI層,而Model則橫跨BLL與DAL層。
 ?。?)MVC作為表現模式的理解
 ?。?)MVC架構模式綜合模型

  可以看出,對于MVC的兩種不同理解的區別就在于對于Model的理解上:將Model作為業(yè)務(wù)模型(BLL、DAL等)還是作為視圖模型(ViewModel)。

三、WebForm vs MVC

 ?。?)WebForm

  優(yōu)點(diǎn): 1.提供了大量的服務(wù)器端控件,可以實(shí)現快速開(kāi)發(fā);

     2.ViewState回傳數據很方便;

     3.學(xué)習成本低;

   缺點(diǎn): 1. 封裝太強,雖然學(xué)習成本低,很多底層東西讓初學(xué)者不是很明白;

      2. 自定義控制不靈活,不利于美工和開(kāi)發(fā)人員的配合,往往那些服務(wù)器控件處理稍有不慎就會(huì )導致出錯;

      3. ViewState在頁(yè)面中的傳遞會(huì )造成大量的流量消耗;

TIP:有關(guān)WebForm的服務(wù)器控件和ViewState的詳細介紹,不了解的朋友可以閱讀另一篇博文《ASP.Net WebForm學(xué)習筆記:aspx與服務(wù)器控件探秘》。

 ?。?)MVC

  優(yōu)點(diǎn): 1.很容易將復雜的應用分成Model(ViewModel)、View、Controller三個(gè)組件模型,將處理后臺邏輯代碼與前臺展示邏輯進(jìn)行了很好的分離,屬于松耦合關(guān)系,在大項目應用中,更易于敏捷開(kāi)發(fā)與測試驅動(dòng)開(kāi)發(fā),有很強的可擴展性;

     2.因為沒(méi)有服務(wù)器端控件,所以程序員控制的會(huì )更加靈活,頁(yè)面更加干凈,沒(méi)有ViewState;

     3.通過(guò)修改路由規則,可以控制生成自定義的url,因此控制生成SEO友好的URL將更加容易;

     4.強類(lèi)型View實(shí)現、Razor視圖、Model綁定機制、Model的驗證機制,更安全高效;

   缺點(diǎn): 學(xué)習成本高,結構復雜,對未變化數據的不必要的頻繁訪(fǎng)問(wèn),也將損害操作性能。

四、第一個(gè)ASP.Net MVC程序

4.1 新建項目后的文件組織結構

 ?。?)新建一個(gè)ASP.Net MVC 4項目,選擇“基本”配置與“ASPX”視圖引擎(暫時(shí)不用Razor引擎)。

 ?。?)VS為我們生成的基本文件組織結構如下圖所示:

  可以看出,VS默認幫我們創(chuàng )建好了Models、Views以及Controllers的三個(gè)文件夾,這三個(gè)文件夾就構成了我們的ASP.Net MVC模式的項目。其中,Controllers是所有控制器的類(lèi)文件所在,而Models則是所有模型的類(lèi)文件所在,而Views則是所有cshtml或aspx的文件所在。

4.2 控制器的“約定大于配置”

  在Controllers中新建一個(gè)控制器,取名為HomeController。在默認的Index這個(gè)Action中新建一個(gè)視圖,默認名為Index即可。

 ?。?)Controller放到controllers文件夾中,并且命名方式以Controller結尾
 ?。?)每個(gè)Controller都對應View中的一個(gè)文件夾,文件夾的名稱(chēng)跟Controller名相同
 ?。?)Controller中的方法名都對應一個(gè)View視圖(非必須,但是建議這么做)而且View的名字跟Action的名字相同
 ?。?)控制器必須是非靜態(tài)類(lèi),并且要實(shí)現IController接口
 ?。?)Controller類(lèi)型可以放到其他項目中

4.3 視圖的相關(guān)約定

 ?。?)所有的視圖必須放到Views目錄下
 ?。?)不同控制器的視圖用文件夾進(jìn)行分割,每個(gè)控制器都對應一個(gè)視圖目錄
 ?。?)一般視圖名字跟控制器的Action相對應(非必須)
 ?。?)多個(gè)控制器公共的視圖放到Shared:例如公用的錯誤頁(yè)、列表模板頁(yè)、表單模板頁(yè)等等;

4.4 數據傳遞的橋梁-ViewData與ViewBag

  首先,ViewData是一個(gè)Key/Value對的字典集合數據結構,用于在Controller和View之間構建起傳遞數據的橋梁。
 ?。?)ViewData是Controller的屬性,此屬性是繼承ControllerBase而來(lái)。
 ?。?)ViewPage下也有一個(gè)ViewData的一個(gè)屬性
 ?。?)控制器的Action方法執行完成后,返回ViewResult,然后MVC框架在執行ExcuteResult方法時(shí),Controller中的ViewData數據會(huì )傳遞給ViewPage類(lèi),其實(shí)就是把Controller的ViewData賦值給ViewPage頁(yè)面的ViewData屬性。
 ?。?)ViewBag傳遞數據:我們對ViewBag的動(dòng)態(tài)屬性進(jìn)行賦值,值實(shí)際上是存到了ViewData中,動(dòng)態(tài)屬性的名存成了ViewDataDictionary的鍵,動(dòng)態(tài)屬性的值存成了ViewDataDictionary的值。
PS:ViweBag其實(shí)是就一個(gè)包含了一層Dynamic的ViewData,兩個(gè)兄弟共用的是一個(gè)容器。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ASP.NET MVC案例教程—第二篇:第一個(gè)頁(yè)面
解析ASP.NET WebForm和Mvc開(kāi)發(fā)的區別
學(xué)習 ASP.NET MVC (第三回)實(shí)戰篇
使用ASP.NET MVC框架創(chuàng )建電子商務(wù)網(wǎng)站
ASP.NET MVC: 構建不帶 Web 窗體的 Web 應用程序
ASP.NET MVC快速入門(mén)(一)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久