婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET MVC小結之基礎篇(一)

ASP.NET MVC小結之基礎篇(一)

熱門標簽:外呼電銷機器人軟件 威海電銷 河南語音外呼系統公司 t3出行地圖標注怎么做 寧夏機器人電銷 關于宗地圖標注技術規范 400免費電話怎么辦理 400電話辦理最優質 河北網絡回撥外呼系統

前言:前幾天要準備一個演講,所以準備了MVC的一些基本的東西,以前也使用過MVC,但是只是使用,而不是去了解,所以趁著這個機會好好的把別人的MVC視頻看了一下(是一個微軟的MVP會員發布的視頻,相信有些人都看過),整理除了這個筆記,共享一下子,基本MVC的所有東西都介紹了,但是都是很基礎的東西。本來打算一篇發表完的,但是發現東西有點多,所以分成了兩篇文章!

什么是ASP.NET MVC
(1) ASP.NET MVC是微軟官方提供的MVC模式編寫ASP.NET Web應用程序的一個框架

(2)MVC是微軟繼ASP.NET WebForms后的有一種開發方式,并非替代方式!

(3)官方網站:http://www.asp.net/mvc

(4)源碼網站:http://aspnet.codeplex.com/wikipage?title=MVC

ASP.NET MVC的特點
(1) 分離任務,耦合度很低

(2)可擴展能力很高

(3)強大的URL重寫(路由)機制

(4)兼容ASP.NET現有的技術

(5)開源

ASP.NET MVC的優點
(1) 通過把項目分為MOdel,View和Controller,使得復雜項目更加容易維護

(2)沒有使用ViewState和服務器表單控件,可以更加方便的控制應用程序的行為(可以說回歸了原始狀態)

(3)應用程序通過Controller來控制程序請求,可以提供豐富的url重寫

(4)支持測試驅動開發

(5)在團隊模式下表現得更加出眾

為什么我們需要ASP.NET MVC
(1) 關注點分離

(2)高可擴展性

(3)更好的可測試性

(4)更好的URL重寫

(5)更好的性能

(6)更加靈活的HTML代碼控制

ASP.NET MVC1
(1) 經過漫長的Preview和2個RC版本后,2009年3月,微軟正式發布了ASP.NET MVC1

(2)這時微軟官方在MVC領域的第一個WebApplication框架,帶來了與WebForm幾乎不同的開發理念

(3)但由于某些原因該版本缺失了Area等關鍵技術點,以至于用該版本開發復雜的MVC Web應用時會有諸多困難

ASP.NET MVC2
(1)在1.0發布后不到1年時間,ASP.NET MVC2正式發布

(2)2010年4月12日發布了VS2010和Visual Web Developer 2010正式版中內置了對ASP.NET MVC2的擴展

(3)ASP.NET MVC2該我們帶來了眾多期待已久的功能:如:強類型的HTML Helper,數據驗證,自定義模版,Area,異步Controller等等

(4).NET 4的新技術,也給ASP.NET MVC2應用開發帶來了一些不錯的新體驗,如:dynamic類型,帶有默認值得方法參數等。

為什么需要ASP.NET MVC3?
(1) ASPX視圖中充斥著%...%>%...%>%...%>

(2)Action過濾器無法全局

(3)對404,301,302等的http響應狀態,缺乏對應的ActionResult類型

(4)缺乏模型(Model)數據驗證的直接支持

(5)對依賴注入(DI),控制反轉(IoC)支持不夠好

(6)不支持Grid

(7)ViewData用起來有些麻煩(使用dynamic類型替代)

ASP.NET MVC3
(1) 增加Razor視圖引擎;支持多視圖引擎

(2)全局的Action過濾器

(3)新的ViewBag屬性(dynamic類型),原來是ViewData

(4)新的ActionResult類型

(5)Model Validation(Model的驗證)

(6)JSON綁定支持

(7)dependency Injection(注入依賴)

(8)HTML5,CSS3

(9)部分也的輸出緩存

(10)HtmlHelper的增強

(11)NuGet(VS2010環境繼承的)

Razor視圖引擎
(1) 使用@代替% %>

     1)語法簡單清晰

     2)容易學習

     3)VS2010智能提示和語法著色

(2)全局設定默認布局等項目

全局的Action過濾器
(1) 3.0以前的寫法

復制代碼 代碼如下:

             [HandleError]
        public class HomeController : Controller
        {
                   ......
        }

(2)3.0以后的寫法:

復制代碼 代碼如下:

            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

新的ActionResult類型
(1) HttpNotFoundResult

     404

(2)RedirectResult

     302\301

(3)HttpStatusCodeResult

     自定義Http狀態碼

Model Validation
(1) 自驗證

(2)客戶端驗證

     ->默認啟用客戶端驗證

(3)遠程驗證

Razor視圖引擎概述
(1) ASP.NET MVC 3自帶了一下視圖引擎

     1)ASPX

     2)Razor

(2)ASP.NET MVC 3支持多視圖引擎機制

(3)可以在您指定的項目中自定默認的視圖引擎

     1)MVC3中自由的上述引擎

     2)Spark

     3)Nhaml

     4)Ndjango

     5)自己定義的視圖引擎

(4)Razor視圖引擎是對以代碼為焦點的方法實現

(5)特點

     1)簡介,富于表現,流暢

            ->盡量減少編寫一個視圖模版所需要敲入的字符數,實現快速流暢的編程工作。

            ->不必為了明確標記出服務模塊的開始和結束而中斷編程,Razor解析器能從你的代碼中自動推斷出來

     2)易于學習

            ->熟悉現有的編程語言和HMTML技能就能快速學會

     3)可以在任何文本編輯器中工作

     4)VS2010對其增加了智能提示

     5)支持單元測試

(6)簡介和流暢的對比

     1)ASPX引擎

                   ul>
                          %foreach(var p in products){%>
                                 li>%=p.Name%>($%=p.Price%>)/li>
                          %}%>
                   /ul>

     2)Razor引擎

                   ul id="products">
                          @foreach(var p in products){
                                 li>@p.Name($@p.Price)/li>
                          }
                   ul>

偉大的@
(1) Razor中服務器端代碼段的起始位置均使用@符號作為開始

     1)ASPX引擎

                   %
                          int x=12;
                          string name="韓迎龍";
                   %>

     2)Razor引擎

                   @{
                          int x=12;
                          string name="韓迎龍";
                   }

(2)渲染輸出

     1)經過HTML編碼(放置被攻擊)

                   1)ASPX引擎

                          span>%:model.Message%>/span>

                   2)Razor引擎

                          span>@model.Message/span>

     2)未經HTML編碼

                   1)ASPX引擎

                          span>%=model.Message%>/span>

                   2)Razor引擎

                          span>@Html.Raw(model.Message)/span>

(3)代碼和標記混合

     1)ASPX引擎

                   %foreach(var item in items){%>
                          span>%:item.Prop%>/span>
                   %}%>

     2)Razor引擎

                   @foreach(var item in items){
                          span>@item.Prop/span>
                   }

(4)代碼和純文本混合

     1)ASPX引擎

                   %if(foo){%>
                          Plain Text
                   %}%>

     2)Razor引擎

                   @if(foo){
                          text>Plain Texttext>
                   }
                   @if(foo){
                          @:Plain Text
                   }

(5)text>標簽式一個Razor特殊處理的元素,Razor將text>塊內部內容視為內容塊,不呈現包含那些內容的text>標簽

            (這意味著只呈現text>內部內容,不呈現標簽本身)。這使呈現沒有被HTML元素包裝的多行內容塊變得方便

(6)表達式與文本混合

       1)ASPX引擎

                   Hello %:title%>.%:name%>

     2)Razor引擎

                   Hello @title.@name

(7)Email地址

     1)hyl934532778@live.cn

                   Razor可以自動識別Email地址而不作為服務器端代碼執行

(8)兩個連續的@@符號會被渲染成一個@符號

            span>I Hava A Dream,@@Kencery /span>

(9)顯示渲染輸出

            1)span>ISBN@(isbnNumber)/span>

            2)當要渲染輸出的代碼@前無空格或標記位時,我們需要使用小括號繼續您顯示的渲染輸出

(10)服務器端注釋

            1)ASPX引擎

                   %
                          I Have a Dream
                   %>

            2)Razor引擎

                   @*
                          I Have a Dream
                   *@

(11)渲染輸出動態方法

            1)對于動態方法返回值之類的輸出我們使用小括號將代碼閉合起來即可

                   @(MyClass.MyMethodAType>())

(12)創建Razor委托

            1)我們通過創建Razor委托來復用一些視圖邏輯

復制代碼 代碼如下:

                   @{
                          Funcdynamic,object> b=
                                 @strong>@item/strong>
                   }
                   @b("Bold this")

(13)內容中混合代碼

復制代碼 代碼如下:

            ul>
                   @foreach(var p in products){
                          li>
                                 @p.ProductName
                                 @if(p.unitsInStock==0){
                                        @:(Out of stock)
                                 }
                                 else if(p.unitsInStock4){
                                        @:(only @p.unitsInStock Left!)
                                 }
                          /li>
                   }
            /ul>

(14)多行內容的混合代碼

            1)內容在html標記閉合中時

復制代碼 代碼如下:

                   @if(p.unitsInStock==0){
                          p>
                                 Line one of Content
                                 Line two of Content
                                 Date is: @DateTime.Now
                                 Line four of Content
                          /p>
                   }

(15)多行內容混合代碼

            1)內容外部沒有html標記包裝時

                   1)@if(p.unitsInStock==0){
                                 @:Line one of Content
                                 @:Line two of Content
                                 @:Line four of Content
                   }

                   2)@if(p.unitsInStock==0){
                          text>
                                 Line one of Content
                                 Line two of Content
                                 Date is: @DateTime.Now
                                 Line four of Content
                          /text>
                   }

為什么需要布局頁面
(1) 沒有使用布局頁時,每個頁面中將大量的重復我們的核心網站布局代碼

     1)代碼冗余

     2)不利于管理

     3)不利于后期的修改和維護

Razor的布局
(1) 不需要使用專門的.master文件,而統一使用.cshtml(VB中為.vbhtml)文件

     1)布局文件名通常采用類似_Layout.cshtml的名字

(2)@RenderBody()用于標識布局頁中可替換內容的主題部分

(3)內容頁中通過給頁面的Layout屬性賦值實現指定布局(模版)頁的文件路徑

復制代碼 代碼如下:

     @{
            Layout="~/Views/Shared/_Layout.cshtml";
}

布局頁的預設可布局區域
(1) 通過使用@RenderSection在布局頁中預設一些區域,用于在內容頁中使用

     1)@RenderSection("head",false)

            ->第一個參數是Section的名字

            ->第二個嘗試使用來設定是否為必須填充內容的區域

            ->上述代碼的含義是生命一個名字為head的非必需的內容區域

(2)內容頁中通過@section head{...}的方式向名為head的section中填充內容

_ViewStart文件
(1) 在項目項目\視圖文件夾下添加一個名為

     _ViewStart.cshtml(或VB的_ViewStart.vbhtml)的文件

(2)該文件用來定義想要在每次視圖呈現開始時執行的通用視圖代碼,比如我們可以在該文件中聲明默認的布局屬性

復制代碼 代碼如下:

     @{
            Layout = "~/Views/Shared/_Layout.cshtml";
     }

(3)因為這段代碼在每個視圖開始的時候執行,我們不需要再任何單個視圖文件中顯示設置布局(除非我們想要覆蓋上面的默認值).

ASPX視圖向Razor視圖的轉換
(1) 手寫一個文件一個文件的修改?

     1)坑爹啊

(2)自己寫代碼用正則表達式轉換??

     1)正則表達式功底不夠好

(3)那就用著名的telerick團隊打造的RazorConverter吧!

     https://github.com/telerik/razor-converter

相信自己,也許你就是下一個奇跡

您可能感興趣的文章:
  • 從零開始學ASP.NET-基礎篇
  • [ASP.NET Ajax] ECMAScript基礎類以及Asp.net Ajax對類lt;Objectgt;的擴展
  • ASP.net基礎知識之常見錯誤分析
  • ASP.NET 2.0 程序安全的基礎知識
  • ASP.NET中實現文件的保護性下載基礎篇
  • ASP.NET MVC基礎
  • ASP.NET MVC小結之基礎篇(二)
  • ASP.NET母版頁基礎知識介紹
  • ASP.NET 5已終結,迎來ASP.NET Core 1.0和.NET Core 1.0

標簽:淮北 吉林 咸寧 賀州 池州 固原 廣元 樂山

巨人網絡通訊聲明:本文標題《ASP.NET MVC小結之基礎篇(一)》,本文關鍵詞  ASP.NET,MVC,小結,之,基礎,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET MVC小結之基礎篇(一)》相關的同類信息!
  • 本頁收集關于ASP.NET MVC小結之基礎篇(一)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一区二区三区不卡在线观看| 成人午夜大片免费观看| 一区二区三区欧美日韩| 成人午夜在线视频| 欧美色老头old∨ideo| 精品国产乱码久久久久久牛牛 | 石原莉奈在线亚洲三区| 国内精品第一页| 日韩欧美在线影院| 亚洲国产中文字幕| 五月婷婷综合在线| 欧美另类videos死尸| 国产精品久久久久桃色tv| 成人动漫视频在线| 久久精品在线观看| 国产.欧美.日韩| 日韩免费看的电影| 九九久久精品视频| 欧美三级乱人伦电影| 中文字幕一区二区三区不卡在线| 成人免费高清视频在线观看| 91精品国产综合久久久蜜臀粉嫩| 亚洲第一在线综合网站| 丁香另类激情小说| 欧美一级精品大片| 美女www一区二区| 欧美三区在线视频| 国产农村妇女精品| 激情都市一区二区| 欧美一区二区视频在线观看2020| 亚洲国产你懂的| 在线免费视频一区二区| 亚洲欧美在线另类| 欧美日韩三级视频| 亚洲国产日日夜夜| 日韩一区二区影院| 日韩中文字幕亚洲一区二区va在线| 99久久国产免费看| 久久久久久一二三区| 韩国v欧美v日本v亚洲v| 日韩一区二区三区视频在线 | 久久精品欧美一区二区三区麻豆 | www.66久久| 国产精品久久久久毛片软件| 不卡一区中文字幕| 亚洲天堂成人在线观看| 97久久超碰精品国产| 国产精品无码永久免费888| 丝袜诱惑制服诱惑色一区在线观看 | 日本大香伊一区二区三区| 中文字幕日韩一区| 99久久精品国产一区| 日韩理论片网站| 日本高清免费不卡视频| 国产精品人妖ts系列视频| 国产精品99久久久久| 国产日韩欧美综合一区| 成人黄色免费短视频| 国产精品电影院| 一本久久精品一区二区| 亚洲国产另类精品专区| 欧美一级艳片视频免费观看| 亚洲v精品v日韩v欧美v专区| 91麻豆精品国产91久久久使用方法| 蜜桃精品在线观看| 2020日本不卡一区二区视频| 国产不卡视频在线观看| 亚洲欧美乱综合| 欧美人xxxx| 国产自产v一区二区三区c| 中文在线免费一区三区高中清不卡| 日韩中文欧美在线| 亚洲一区二区中文在线| 老汉av免费一区二区三区| 亚洲777理论| 成人免费毛片片v| 色乱码一区二区三区88| 久久久精品综合| 午夜欧美视频在线观看 | 夜夜亚洲天天久久| 成人午夜电影小说| 欧美性大战xxxxx久久久| 日韩精品一区二区三区老鸭窝| 国产日本亚洲高清| 丝袜脚交一区二区| 日韩电影在线免费看| 久久久久久久久久久久久久久99 | 蜜臀va亚洲va欧美va天堂| 91精品国产欧美一区二区成人| 国产美女主播视频一区| 亚洲免费观看高清完整版在线观看熊| 欧美肥胖老妇做爰| 成人污污视频在线观看| 日本伊人色综合网| 亚洲欧美综合色| 日韩欧美www| 在线区一区二视频| 国产精品白丝av| 18成人在线观看| 日韩精品中午字幕| 日本精品视频一区二区| 成人妖精视频yjsp地址| 免费视频一区二区| 一区二区三区免费| 国产精品久久久久一区二区三区 | 欧美日韩美少妇| 不卡一区在线观看| 黄色小说综合网站| 日本视频一区二区三区| 亚洲综合一区二区三区| 中文字幕一区免费在线观看| 精品三级在线看| 欧美日韩一二区| 国产电影一区在线| 亚洲成人久久影院| 国产精品你懂的| 久久综合成人精品亚洲另类欧美| 5858s免费视频成人| 在线中文字幕不卡| 麻豆国产91在线播放| 欧美色图免费看| 在线日韩一区二区| 色综合久久66| 99久久精品费精品国产一区二区| 懂色av噜噜一区二区三区av| 蜜臀av一区二区在线免费观看| 717成人午夜免费福利电影| 91女神在线视频| 91在线观看污| 91捆绑美女网站| 欧美精品一二三四| 欧美午夜在线一二页| 91免费版pro下载短视频| 成人av先锋影音| 亚洲一区在线观看免费| 欧美电影免费观看高清完整版在线| 日本中文在线一区| 国产一区视频网站| 成人v精品蜜桃久久一区| 韩国女主播成人在线| 亚洲高清免费观看| 94-欧美-setu| 美腿丝袜亚洲色图| 久久疯狂做爰流白浆xx| 青青草一区二区三区| 婷婷综合另类小说色区| 午夜亚洲国产au精品一区二区| 狠狠色综合色综合网络| 国产精品一区在线观看你懂的| 亚洲国产三级在线| 天堂在线一区二区| 国产高清不卡二三区| 欧美日韩国产天堂| 亚洲国产经典视频| 免费日本视频一区| 色婷婷久久一区二区三区麻豆| 精品美女一区二区| 亚洲国产一二三| 国产91精品露脸国语对白| 欧美妇女性影城| 亚洲色图制服丝袜| 韩国av一区二区三区四区| 欧美综合天天夜夜久久| 中文久久乱码一区二区| 男男成人高潮片免费网站| 色婷婷av一区| 国产精品美女久久福利网站| 久久99热狠狠色一区二区| 欧美视频一区二区三区| 日韩一区欧美小说| 国产精品影视网| 精品久久国产97色综合| 午夜精品视频一区| 欧美性生活大片视频| 日韩伦理电影网| 成人av午夜电影| 国产欧美日韩综合精品一区二区| 久久精品国产一区二区三区免费看| 欧美精品一级二级三级| 亚洲国产中文字幕| 日本精品视频一区二区| 亚洲人亚洲人成电影网站色| 成人永久免费视频| 久久精品一区蜜桃臀影院| 精品亚洲欧美一区| 欧美v国产在线一区二区三区| 日韩国产欧美一区二区三区| 欧美卡1卡2卡| 亚洲午夜精品网| 欧美在线播放高清精品| 亚洲欧美另类久久久精品| 成人av网址在线| 日韩美女视频一区二区| 99vv1com这只有精品| 亚洲婷婷综合色高清在线| fc2成人免费人成在线观看播放| 精品国产一区二区亚洲人成毛片| 一区二区在线观看免费| 欧美无乱码久久久免费午夜一区 | 日韩精品一区二区三区在线播放|