日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

老罗学习MVC之旅:MVC组件分析

發(fā)布時(shí)間:2023/12/15 c/c++ 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 老罗学习MVC之旅:MVC组件分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2 System.Web.Mvc V 4.0.0.0 組件分析

2.1 Routing組件(路由選擇)

Routing的作用就是負(fù)責(zé)分析Url

?

Action的要求
? 必須是一個(gè)公有方法
? 必須返回ActionResult類型
? 必須是實(shí)例方法
? 不能是范型方法
? 沒有標(biāo)注NonActionAttribute
? 不能被重載(overload)

2.2 Controller(控制器)

2.3 控制器可用的ActionResult

ActionResult是控制器方法執(zhí)行后返回的結(jié)果類型,控制器方法可以返回一個(gè)直接或間接從ActionResult抽象類繼承的類型,如果返回的是非ActionResult類型,控制器將會(huì)將結(jié)果轉(zhuǎn)換為一個(gè)ContentResult類型。默認(rèn)的ControllerActionInvoker調(diào)用ActionResult.ExecuteResult方法生成應(yīng)答結(jié)果。

??? MVC中實(shí)現(xiàn)的默認(rèn)ActionResult如下:

1、ContentResult: 返回簡單的純文本內(nèi)容,可通過ContentType屬性指定應(yīng)答文檔類型,通過ContentEncoding屬性指定應(yīng)答文檔的字符編碼。可通過Controller類中的Content方法便捷地返回ContentResult對(duì)象。如果控制器方法返回非ActionResult對(duì)象,MVC將簡單地以返回對(duì)象的ToString()內(nèi)容為基礎(chǔ)產(chǎn)生一個(gè)ContentResult對(duì)象。
2、EmptyResult: 返回一個(gè)空的結(jié)果。如果控制器方法返回一個(gè)null,MVC將其轉(zhuǎn)換成EmptyResult對(duì)象。
3、RedirectResult: 表示一個(gè)連接跳轉(zhuǎn),相當(dāng)于ASP.NET中的Response.Redirect方法。對(duì)應(yīng)的Controller方法為Redirect。
4、RedirectToRouteResult:同樣表示一個(gè)調(diào)轉(zhuǎn),MVC會(huì)根據(jù)我們指定的路由名稱或路由信息(RouteValueDictionary)來生成Url地址,然后調(diào)用Response.Redirect跳轉(zhuǎn)。對(duì)應(yīng)的Controller方法為RedirectToAction和RedirectToRoute。
5、ViewResult: 表示一個(gè)視圖結(jié)果,它根據(jù)視圖模板產(chǎn)生應(yīng)答內(nèi)容。對(duì)應(yīng)Controller方法為View。
6、PartialViewResult: 表示一個(gè)部分視圖結(jié)果,與ViewResult本質(zhì)上一致,只是部分視圖不支持母版,對(duì)應(yīng)于ASP.NET,ViewResult相當(dāng)于一個(gè)Page,而PartialViewResult則相當(dāng)于一個(gè)UserControl。它對(duì)應(yīng)的Controller方法為PartialView。
7、HttpUnauthorizedResult: 表示一個(gè)未經(jīng)授權(quán)訪問的錯(cuò)誤。MVC會(huì)向客戶端發(fā)送一個(gè)401的應(yīng)答狀態(tài)。如果在web.config中開啟了表單驗(yàn)證(authentication mode="Forms"),則401狀態(tài)會(huì)將Url轉(zhuǎn)向指定的loginUrl鏈接。
8、JavaScriptResult: 本質(zhì)上是一個(gè)文本內(nèi)容,只是將Response.ContentType設(shè)置為 application/x-javascript,此結(jié)果應(yīng)該和MicrosoftMvcAjax.js腳本配合使用,客戶端接收到Ajax應(yīng)答后,將判斷Response.ContentType的值,如果是application/x-javascript,則直接eval執(zhí)行返回的應(yīng)答內(nèi)容。此結(jié)果類型對(duì)應(yīng)的Controller方法為JavaScript。
9、JsonResult: 表示一個(gè)JSON結(jié)果。MVC將Response.ContentType設(shè)置為application/json,并通過JavaScriptSerializer類將指定對(duì)象序列化為Json表示方式。需要注意,默認(rèn)情況下,MVC不允許GET請(qǐng)求返回JSON結(jié)果,要解除此限制,在生成JsonResult對(duì)象時(shí),將其JsonRequestBehavior屬性設(shè)置為JsonRequestBehavior.AllowGet。此結(jié)果對(duì)應(yīng)的Controller方法為Json。
10、FilePathResultFileContentResultFileStreamResult: 這三個(gè)類繼承于FileResult,表示一個(gè)文件內(nèi)容,三者的區(qū)別在于,FilePath通過路徑傳送文件到客戶端,FileContent通過二進(jìn)制數(shù)據(jù)的方式,而FileStream是通過Stream的方式來傳送。Controller為這三個(gè)文件結(jié)果類型提供了一個(gè)名為File的重載方法。

通過直接或間接地從ActionResult繼承,可實(shí)現(xiàn)自定義的結(jié)果類型.

2.4 View(視圖)

2.5 ViewModel(視圖模型)

HtmlHelper幫助類

用法大全

http://www.cnblogs.com/jyan/archive/2012/07/23/2604474.html

FormExtensions,

InputExtensions,主要有5種類型的擴(kuò)展方法,分別用于CheckBox控件、Hidden控件、Pass控件、RadionButton控件和TextBox控件

LinkExtensions, 該類主要用于生成相關(guān)鏈接,主要擴(kuò)展了ActionLink和RouteLink方法

SelectExtensions,

TextAreaExtensions,

ValidationExtensions,

RenderPartialExtensions

ActionLink:擴(kuò)展方法主要實(shí)現(xiàn)一個(gè)連接,共有十個(gè)重載方法。

UrlHelper幫助類

看類名也都知道這個(gè)類是用來成URL在 ASP .NET MVC應(yīng)用程序中。

UrlHelper提供了四個(gè)非常常用的四個(gè)方法。

1. Action方法通過提供Controller,Action和各種參數(shù)生成一個(gè)URL,

2. Content方法是將一個(gè)虛擬的,相對(duì)的路徑轉(zhuǎn)換到應(yīng)用程序的絕對(duì)路徑,

3. Encode方法是對(duì) URL地址進(jìn)行加密,與Server.Encode方法一樣。

4. RouteUrl方法是提供在當(dāng)前應(yīng)用程序中規(guī)定的路由規(guī)則中匹配出URL。

另外還有兩個(gè)屬性,分別是RequestContext和RouteCollection兩個(gè)屬性,分別指的是包含HTTP上下文和RouteData兩個(gè)屬性,另外,RouteCollection是整個(gè)當(dāng)前應(yīng)用程序中規(guī)定的路由規(guī)則。

自定義控件

微軟提供的HtmlHelper已經(jīng)是足夠大部分開發(fā)人員使用了,但是有一些功能要用微軟提供的HtmlHelper可能還不滿足要求。接下來就談?wù)勅绾巫远x的過程。

首先自定義的方法就是對(duì)HtmlHelper對(duì)象的擴(kuò)展。

擴(kuò)展方法實(shí)現(xiàn)的三要素:1、靜態(tài)類 2、靜態(tài)方法 3、this關(guān)鍵字

1、先定義一個(gè)類,例如:MyHtmlHelper:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

namespace MvcApplicationFirstDome.Models {

//靜態(tài)類

public static class MyHtmlHelper

{

//靜態(tài)方法

}

}

2、假設(shè)要擴(kuò)展的方式是GetSpan,作用就是當(dāng)你傳入?yún)?shù)時(shí),內(nèi)部封裝了之后返回結(jié)果,代碼如下。注意在MyHtmlHelper類中要引用using System.Web.Mvc命名空間。

//靜態(tài)方法

public static string GetSpan(this HtmlHelper htmlHelper,string text)

{

return "<span style='color:Red'>"+text+"</span>";

}

經(jīng)過上面兩步之后HtmlHelper的擴(kuò)展方法GetSpan基本可以使用了,接下來就講解如何在頁面調(diào)用了。

2.6 Filters(過濾器)

ASP.NET MVC Framework支持四種不同類型的Filter:

1. Authorization filters – 實(shí)現(xiàn)IAuthorizationFilter接口的屬性.

2. Action filters – 實(shí)現(xiàn)IActionFilter接口的屬性.

3. Result filters – 實(shí)現(xiàn)IResultFilter接口的屬性.

4. Exception filters – 實(shí)現(xiàn)IExceptionFilter接口的屬性.

ActionFilterAttribute類有以下的方法可以重寫:

· OnActionExecuting – 在controller action執(zhí)行之前調(diào)用

· OnActionExecuted – 在controller action執(zhí)行之后調(diào)用

· OnResultExecuting – 在controller action result執(zhí)行之前調(diào)用

· OnResultExecuted – 在controller action result執(zhí)行之后調(diào)用

執(zhí)行的順序如下圖:

創(chuàng)建 Action filter 必須實(shí)現(xiàn) IActionFilter 接口,它定義了兩個(gè)方法:

方法名

調(diào)用時(shí)機(jī)

可進(jìn)行的操作

OnActionExecuting

Action方法執(zhí)行之前

可以給 filterContext.Result 賦值,以阻止 Action 的執(zhí)行
可以通過 filterContext.ActionParameters 查看或修改 Action 的參數(shù)

OnActionExecuted

Action方法執(zhí)行之后

可以通過 filterContext.Exception 獲取 Action 執(zhí)行時(shí)拋出的異常,

并能把它標(biāo)記為“已處理”:filterContext.ExceptionHandled = true。

可以查看通過filterContext.Result查看 Action 的執(zhí)行結(jié)果,但是不能修改。

下面就使用 OnActionExecuting 可以在 Action 方法執(zhí)行前 能查看并修改參數(shù)值的特性 來完成敏感信息的過濾功能。

通過直接或間接地從ActionFilterAttribute繼承,可實(shí)現(xiàn)自定義的結(jié)果類型.

總結(jié)

以上是生活随笔為你收集整理的老罗学习MVC之旅:MVC组件分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲小说网 | 天天操天天插 | 成人四色| 波多野结衣一区二区三区在线 | 婷婷色综合网 | 苍井空浴缸大战猛男120分钟 | 国模少妇一区二区 | av无码久久久久久不卡网站 | 中文字幕成人在线 | 操比视频网站 | 日本国产精品 | 一亲二脱三插 | 人人超碰人人 | 奇米影视一区二区三区 | 一级片麻豆 | 极品白嫩的小少妇 | 亚洲欧美日韩专区 | 久久久久人妻一道无码AV | 成人av网站在线观看 | 中文字字幕第183页 欧美特级一级片 | 91精品国产麻豆国产自产在线 | 手机av免费 | 少妇免费视频 | 大尺度床戏视频 | 国语对白真实视频播放 | 中文字幕资源在线 | 欧美日韩国产网站 | 国产中文字字幕乱码无限 | 亚洲天堂网在线视频 | 不许穿内裤随时挨c调教h苏绵 | 一区二区视频免费在线观看 | 亚洲播放器 | 日韩成人欧美 | 日韩欧美黄色大片 | 性少妇bbw张开| 青青视频免费观看 | 95在线视频| 中文字幕一区二区三区免费视频 | 黄色一区二区三区四区 | 亚洲国产精品人人爽夜夜爽 | 亚洲一级在线播放 | 欧美色插 | 狠狠干青青草 | 光棍影院手机版在线观看免费 | 欧美一级在线观看视频 | 中文毛片无遮挡高潮免费 | www天堂在线| 国产天堂av在线 | 国产女优在线播放 | 亚洲综合色一区 | 亚洲AV无码国产成人久久 | 微拍福利一区二区 | 国产精品久久国产精品 | 影音先锋中文字幕一区二区 | 欧美日韩高清一区二区 | 久久精品国产亚洲AV熟女 | 久久久久久久久网站 | 艹少妇视频 | 女性向小h片资源在线观看 日本天天操 | 日本成人免费视频 | 欧美123区| 天天干干 | 国产美女作爱视频 | 91久久久久久久久久久久久 | 欧美日韩精品区别 | 麻豆亚洲av熟女国产一区二 | 青草福利| 欧美日韩中文在线观看 | 久久久久久久一区二区三区 | 在线免费看污片 | 亚洲网址| 日批视频 | 国产无套在线观看 | 精品国产大片大片大片 | 4438五月天 | 色综合天 | 日韩av一二区 | 成人免费高清视频 | 亚洲专区av| 极品美女无套呻吟啪啪 | 成年人香蕉视频 | 久久久经典 | 网站黄在线观看 | 韩日a级片 | 国产美女在线免费观看 | 精品探花 | 打屁屁日本xxxxx变态 | 99久久99九九99九九九 | 男女黄色又爽大片 | 91sex国产| 国产无遮挡又黄又爽免费视频 | 91蝌蚪91九色白浆 | 成人午夜精品福利免费 | 天堂色播| 亚洲福利天堂 | www黄色av| jizz俄罗斯| 亚洲二区中文字幕 | 另类小说五月天 |