欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何理解ASP.NETMVC-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“如何理解ASP.NET MVC”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何理解ASP.NET MVC”吧!

武義ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

1.ASP.NET MVC請求過程

1如何理解ASP.NET MVC

2.Controller

(1) 控制器在ASP.NET MVC中扮演著處理客戶端請求的角色

1)必須實現(xiàn)System.Web.Mvc.IController接口

->通常直接繼承System.Web.MVC.Controller類

2)必須要以Controller結(jié)尾

3)通過不同的Action來處理具體的客戶端請求

3.Action

(1) 是指在繼承了System.Web.Mvc.Controller類中所定義的返回值的類型可以兼容

(2)ActionResult方法

復(fù)制代碼 代碼如下:


namespace MvcApplication.Controllers
{
public class HomeController:Controller
{
public ActionResult Index()
{
ViewBag.Message="韓迎龍";
return View();
}
}
}


(3)ASP.NET MVC3的ActionResult

  如何理解ASP.NET MVC

(4)注意事項

1)能夠通過URL訪問的Action必須是公有(Public)方法

2)如果標(biāo)記了[NonAction]屬性,這不能通過URL訪問該Action

3)默認,Action得方法名就是Action名(通過URL訪問的名稱),如有特殊需求也可通過[ActionName("OtherActionName")]標(biāo)記出特定的Action名

4)我們可以通過[HttpPost][HttpGet]等來區(qū)分處理不同的請求動作的同名Action

4.ASP.NET Routing 路由,過濾器

(1) ASP.NET Routing模塊(Module)的責(zé)任是將傳入的客戶端(瀏覽器)請求映射為特定的MVC Controller Actions

(2)路由機制

1)路由引擎 -映射URLS到Controlller

復(fù)制代碼 代碼如下:


public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // 路由名稱
"{controller}/{action}/{id}", // 帶有參數(shù)的 URL
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 參數(shù)默認值
);
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}

2)/Products/Detail/8


復(fù)制代碼 代碼如下:


routes.MapRoute(
"Default", // 路由名稱
"{controller}/{action}/{id}", // 帶有參數(shù)的 URL
);
public class ProductsController:Controller
{
public ActionResult Details(int id)
{
return View();
}
public ActionResult Edit(int id)
{
return View();
}
}


5. MVC3中Routing變更

(1) 從System.Web.Routing3.5程序集中轉(zhuǎn)移到了System.Web 4程序集中,成為了基礎(chǔ)服務(wù)的一部分。

(2)在ASP.NET 4中Routing的Module被注冊在根Web.Config中,不需要你在自己的應(yīng)用程序中的Web.Config中另行注冊了

(3)UrlRoutingModule處理的事件減少了一個,僅處理PostResolveRequestCache事件

(4)HttpRequest新增加了一個RequestContext屬性

(5)增加了PageRouteHandler,支持WebForm路由功能

(6)RouteCollection中增加了4個MapPageRoute的重載方法,添加路由規(guī)則更方便了

6. Routing好處

(1) 可以方便的實現(xiàn)REST服務(wù)

(2)Url友好化,利于SEO和增強用戶體驗

(3)Controller和Action的調(diào)用規(guī)則可定制化,降低耦合,提高靈活性

7. 過濾器

(1) Filter是一種AOP模式,能夠?qū)σ幌盗胁僮鬟M行橫切干擾的手段,它很大程度解耦了依賴關(guān)系,讓我們的代碼更加簡練,功能更加豐富

(2)ASP.NET MVC中提供了4類Filter接口

1)IActionFilter

2)IAuthorizationFilter

3)IExceptionFilter

4)IResultFilter

(3)ASP.NET MVC中提供了OutputCacheAttribute,HandlErrorAttribute,AuthorizeAttribute等常用Filter實現(xiàn)

(4)Filter的切入過程

1)以ActionFilter為例

    如何理解ASP.NET MVC

8. SP.NET MVC3中的Filter

(1) 提供了全局注冊Filter功能

(2)提供了對ChildAction的OutputCache支持

1)結(jié)合[ChildActionOnly]使用

9. Model

(1) MVC中Model主要負責(zé)維持數(shù)據(jù)狀態(tài),將數(shù)據(jù)從數(shù)據(jù)存儲器中檢索并傳遞給控制器,客戶端傳送過來的數(shù)據(jù)經(jīng)過處理后再傳回數(shù)據(jù)存儲系統(tǒng)中,是MVC中較重的一層

(2)ASP.NET MVC框架本身并不關(guān)心數(shù)據(jù)的存儲系統(tǒng),并通過一些額外的幫助類和Model綁定機制簡化了Model的使用

1)具備自綁定機制

2)具備自驗證機制

(3)ASP.NET MVC3 Model的改進

1)ASP.NET MVC3 Model主要改進了驗證機制

->數(shù)據(jù)驗證(Data Annotations)

->客戶端驗證(Client Validation)

->遠程驗證(Remote Validation)

->自驗證(Self Validation)

(4)數(shù)據(jù)驗證

1)通過System.ComponentModel.DataAnnotations的方法集合進行驗證,并對客戶端驗證產(chǎn)生一些便利影響

2)可以通過繼承ValidationAttribute實現(xiàn)自定義驗證的Attribute

(5)客戶端驗證

1)使用Jquery的驗證插件

2)jquery.validate.unobtrusive.mis.js實現(xiàn)客戶端驗證

->啟用客戶端驗證

<appSettings>

<add key="ClientValidationEnabled" value="true" />

<add key="UnobtrusiveJavaScriptEnabled" value="true" />

</appSettings>

->引用JQuery

<script src="http://www.cnblogs.com/Scripts/jquery.validate.min.js" type="text/javascript"></script>

  <script src="http://www.cnblogs.com/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>

->特殊的驗證

@{

Html.EnableClientValidation();

}

(6)遠程驗證

1)在Model的中使用跟RequiredAttribute相似

1)[Remote("驗證的Action名","控制器名",ErrorMessage="遠程驗證為未通過的錯誤消息")]

2)注意

1)用于遠程驗證的Action必須是HttpGet的,Post提交無效

2)Action返回的結(jié)果是JsonResult,不是直接返回布爾值

(7)自驗證

1)在Model中結(jié)合ValidationContext和ValidationResult來提供驗證

復(fù)制代碼 代碼如下:


 public IEnumerable<ValidationResult> Validate(ValidationContext validationResult)
{
if(EndDate<=StartDate)
{
yield return new ValidationResult("結(jié)束時間必須大于開始時間");
}
}


10. 很好實踐

(1) 分層設(shè)計

1)多個項目

2)分離關(guān)注點

3)可替換的數(shù)據(jù)訪問層

(2)Repository模式(業(yè)務(wù)層)

1)將數(shù)據(jù)的增刪改查(CRUD)操作封裝到Repository中

2)業(yè)務(wù)邏輯/數(shù)據(jù)驗證封裝到Service中

3)Controller調(diào)用Respository和Service

(3)PRG模式(方法)

1)POST

2)Redirect

3)GET

4)PRG模式是用來確保修改數(shù)據(jù)只發(fā)生一次

(4)保持視圖中代碼量最小化

1)視圖中不要含有數(shù)據(jù)處理的邏輯代碼

2)視圖中要避免包含大的代碼塊

3)構(gòu)建多個試圖/局部視圖

4)使用適當(dāng)?shù)腀Helper和@Function語法

(5)跟神奇的字符串說"拜拜了"

1)ASPX模式

@ViewData["Message"]

@ViewData["TotalCount"]

2)Razor模式

@Model.Message

@Model.TotalCount

3)盡量使用特定的Model,而避免使用ViewData/ViewBag

(6)DomainModel(領(lǐng)域模型)!=ViewModel(視圖模型)

1)符合需求的最小化ViewModel

1)有效驗證

2)高安全性

3)高性能

2)使用一些Mapping工具,做雙向映射填充

1)AutoMapper,EmitMapper,ValueInjecter

2)自定義的ORM-GenerPoint.ORM

3)使用專門的ViewModel填充邏輯,輕松解決國際化/本地化

(7)使用新的AJAX Helper

1)Web.Config中德appSettings

<add key="UnobtrusiveJavaScriptEnabled" value="true">

2)視圖中引用jquery.unobtrusive-ajax.js

3)視圖中調(diào)用AJAX Helpers

1)@Ajax.ActionLink("Home","Index",new AjaxOptions{UpdateTargetId="main"})

2)<a data-ajax="true" data-ajax-mode="replace" data-ajax-update="#content" href="/">Home</a>

(8)視圖中盡可能的寫HTML代碼

1)盡可能寫純HTML代碼

2)不要為了隱藏HTMl,而故意自定義Html.Submit之類的Helper

3)盡可能不使用WebForm控件做視圖代碼渲染

(9)IIS Express 7.5

1)具有完整的Web服務(wù)器功能

1)SSL

2)網(wǎng)址重寫

3)可對<System.webServer>的配置進行本地測試

4)IIS7.X其他的模版集合

2)輕量級

1)<5M

2)不需要管理員賬戶

3)高性能

11. 關(guān)于性能優(yōu)化的軟實力

(1) 了解HTTP,Cache,Ajax各種基礎(chǔ)知識

(2)能夠針對整體Web執(zhí)行環(huán)境進行分析與架構(gòu)規(guī)劃

(3)能夠設(shè)計出妥當(dāng)?shù)木彺娌呗?/p>

(4)能夠進一步針對網(wǎng)站性能進行數(shù)據(jù)話分析

12. 關(guān)于性能優(yōu)化的硬功夫

(1) 熟悉.net/C#/ASP.NET MVC框架與核心原理

(2)能夠進一步針對項目進行妥善規(guī)劃,做好關(guān)注點分離設(shè)計

(3)熟悉Profiling技術(shù),能夠分析出個環(huán)節(jié)的性能瓶頸

(4)能夠針對各種環(huán)境進行代碼優(yōu)化,提升程序的執(zhí)行性能

13. 決定WEB性能的關(guān)鍵要素

(1) Web性能優(yōu)化基礎(chǔ)-HTTP

1)http是無狀態(tài)的

2)一個網(wǎng)頁包含了N次HTTP請求

(2)分析網(wǎng)頁打開時的Http狀態(tài)

1)Fiddler

2)IE10 Developer Tools

(3)客戶端優(yōu)化

1)HTTP請求次數(shù)減少

2)下載所使用的帶寬

3)DNS查詢的時間長短

4)CSS顯示的速度

5)JavaScript調(diào)用的速度

(4)服務(wù)端優(yōu)化

1)IIS

->控制客戶端

HTTP Cache Control

->控制服務(wù)器端

將數(shù)出緩存(Output Caching)

提升數(shù)據(jù)庫查詢速度

2)ASP.NET MVC

->調(diào)用性能改善

->適當(dāng)?shù)木彺娌呗?/p>

(5)[SeesionState]

1)使用SessionState屬性

控制Controller訪問階段狀態(tài)數(shù)據(jù)(Session)的方式

2)注意:關(guān)閉Session后不能在使用TempData傳遞信息

(6)[OutputCache]

1)Html.Action與Html.RenderAction支持Output Caching

->@{Html.RenderAction("ActionName")}

->@Html.Action("ActionName")

2)ChildAction終于支持OutputCache屬性

->[ChildActionOnly]

->僅支持Duration,VaryByCustom與VaryByParam參數(shù)

->不能使用CacheProfile參數(shù)

(7)改變ViewEngine的默認設(shè)置

1)移除多余的ViewEngine以提升解析View的速度

->ViewEngines.Engines.Clear();

->ViewEngines.Engines.Add(new RazorViewEngine());

2)也可以通過這種方式變更載入View的順序

->默認是WebFormViewEngine優(yōu)先處理

->ViewEngines.Engines.Add(new WebFormViewEngine());

(8)避免闖入為null給視圖(View)

1)Html.TextBoxFor(m=>m.Name)

->當(dāng)傳入null時會引發(fā)Exception,但會被try/catch掉

->public ActionResultInsert(){

return View(new Products());

}

(9)關(guān)閉Web.Config的debug模式

1)<compilation debug="False" targetFramework="4.0" />

到此,相信大家對“如何理解ASP.NET MVC”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

名稱欄目:如何理解ASP.NETMVC-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://aaarwkj.com/article22/dophjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、品牌網(wǎng)站制作、虛擬主機、做網(wǎng)站App開發(fā)、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
欧美日韩性生活视频在线| 国产大片久久午夜电影| 亚洲精品永久在线观看| 97精品在线视频免费| 欧美一区二区三区va| 国产亚洲精品第一综合| 成人在线观看一区二区三区| 日韩 在线一区二区| 在线观看亚洲激情av| 国产成人精品久久性色av| 国产亚洲精品精品国产亚洲| 国产日韩精品一区二区三区在线| 男人天堂av东京热伊人| 久久国产亚洲精品赲碰热| 久久亚洲中文字幕精品一区四区| 99热在线免费观看精品| 国产情侣自拍视频在线观看| 免费草b视频在线观看| 九九九热这里只有精品| 亚洲人色中文字幕天堂| 国产91人妻精品一区二区三区| 日本熟妇中文字幕系列| 国产经典三级在线看| 蜜桃国产精品视频网站| 极品人妻少妇精品一区二区| 亚洲激情午夜福利视频| 亚洲第一女人天堂av| 亚洲精品日韩国产3区| 亚洲天堂一区二区av| 中国毛片一区二区三区| 一本色道av久久精品+| 成人精品颜射少妇内射| 白白色成人永久在线观看视频| 黄色大片黄色大片黄色大片| 91欧美一区二区在线视频| 亚洲国产欧美日韩激情在线| 亚洲欧美另类国产一区| 精品久久少妇激情视频| 日本特黄特色高清免费大片| 国产日韩欧美 一区二区三区| 天天日天天天干夜夜操|