freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

asp論文外文翻譯---從底層了解aspnet的結(jié)構(gòu)-jsp程序-資料下載頁

2025-05-12 19:24本頁面

【導(dǎo)讀】requestprocessing.interface.

  

【正文】 post by Brad Wilson: Partial Rendering amp。 View Engines in MVC. 13. HtmlHelper Views must be very dumb and thin, and they should only have html markup and calls to HtmlHelpers. There should be no code inside the views, so helpers e very handy for extracting the code from the view and putting it into something that is testable. As Rob Conery says: “If there39。s an IF, make a Helper”. What is an HtmlHelper? Basically it’s just an extension method of the HtmlHelper class, but that’s the only requirement. 本文摘自 10 譯文 2 MVC 中你必須知道的 13 個擴展點 摘要 MVC 設(shè)計的主要原則之一是可擴展性。處理管線( processing pipeline)上的所有(或大多數(shù))東西都是可替換的。因此,如果您不喜歡 MVC 所使用的約定(或缺乏某些約定),您可以創(chuàng)建自己的服務(wù)來支持您的約定,并將其注入到主管線中。 在本文中,我們將從管線開始直到視圖呈現(xiàn),逐一向您展示每個 MVC開發(fā)者都必須了解 13個擴展點。 通常情況下你可以使用正則表達式對 url參數(shù)進行約束,但如果您的約束不僅僅取決于單一參數(shù),您可以實現(xiàn) IRouteConstrains 的方法,并在其中添加你的驗證邏輯。 比如對日期的驗證, url中可能會包含年、月、日,而你需要驗證這三者是 否可以組合成一個有效的日期。 RouteHandler 是在路由選擇之后進行處理的組件,它并不僅僅針對 MVC。顯然,如果您改變了 RouteHandler,那么對請求的處理將不再使用 MVC,但這在您使用其他 HttpHandler 或 經(jīng)典的 WebForm進行路由處理時卻是非常有用的。 ControllerFactory 是基于路由的組件,它選擇正確的 controller 并對其實例化。default factory 會查找實現(xiàn)了 IController 并且以 Controller 結(jié)尾的類,然后通過反射使用無參構(gòu)造函數(shù)進行實例化。 但如果您希望使用依賴注入,就不能再使用 default factory,而必須使用支持 IoC的controller factory。 MvcContrib 和 Ninject Controller Factory都包含支持 IoC容器的controller factory。 11 ActionInvoker 顧名思義是負責(zé)調(diào)用( invoke) action的。默認(rèn)的 action invoker 通過方法名、 action名或其他可能的 selector attribute 來查找 action,然后調(diào)用 action方法以及定義的 filter,最終執(zhí)行得到 action result。 你會發(fā)現(xiàn)大部分執(zhí)行管線存在于 ControllerActionInvoker類的邏輯之中。因此,如果希望改變這些約定,如 action 方法的選擇邏輯、 參數(shù)映射到 action 參數(shù)的方式、選擇和執(zhí)行 filter的方式等,您需要擴展該類并重寫需要修改的方法。 可以參閱 NinjectActionInvoker I developed to allow injection of dependencies inside filters。 使用默認(rèn)的 action invoker 時, action的選擇是基于名稱的。您也可以實現(xiàn)自己的Method Selector 以改善對于 action 的選擇。在框架中已經(jīng)包含了 AcceptVerbs 特性,它允許您指定使用哪一個 HTTP Verb 來處理 action的響應(yīng)。 例如,您也許 會希望基于瀏覽器所支持的語言或瀏覽器類型(如移動設(shè)備的瀏覽器或桌面瀏覽器)來進行 action 的選取。 這種過濾器是在 action執(zhí)行之前執(zhí)行的,用來確保請求是有效的。 框架中已經(jīng)包含了一些 autorization 過濾器,最有名的莫過于 Authorize 特性,它用來檢查當(dāng)前用戶是 否允許執(zhí)行該 action。另一個是 用來阻止 CSRF攻擊的ValidateAntiForgeryToken。如果您希望實現(xiàn)自己的 authorization,那么必須實現(xiàn)接口。例如,日期中的小時。 Action Filters 在 action 執(zhí)行前后執(zhí)行。 OutputCache過濾器是幾個核心過濾器之一。這可能是您最有可能使用的擴展點,并且在我看來, controller 只關(guān)心它的主要工作,而view所需要的所有其他數(shù)據(jù)都必須從 action過濾器內(nèi)部獲取,這樣 的實現(xiàn)對于一個組織良好的 view來說,是十分關(guān)鍵的。 12 默認(rèn)的 model binder 使用參數(shù)名稱進行 HTTP參數(shù)到 action方法參數(shù)的映射。例如,參數(shù) 將映射到方法參數(shù) user的 Address屬性的 City屬性。DefaultModelBinder 也同 樣適用于數(shù)組和其他列表類型。 更進一步來說,例如,您可能希望從數(shù)據(jù)庫中進行檢索,直接根據(jù) person 的 id將其轉(zhuǎn)換為 Person對象。 Timothy Khouri(網(wǎng)名 SingingEels)在他的文章 Model Binders in MVC中更好的闡述了這種方法。他的代碼基于 Preview 5,但其理念是一樣的。 所有的 Controller 均繼承自基類 Controller。要想在 action中封裝自己的邏輯和約定,創(chuàng)建自己的父類使所有 Controller 繼承自該類,是一種很好的方式。 與 ActionFilter類似, ResultFilters 在 ActionResult 前后執(zhí)行。 OutputCache過濾器也可以作為 ResultFilter的示例。另外,比較常用的詮釋這種過濾器的示例是日志記錄。如果您希望在頁面返回給用戶時記錄日志,可以編寫自定義的 RenderFilter,在ActionResult 執(zhí)行之后記錄日志。 MVC 提供了很多 result 用來呈現(xiàn)視圖、 JSON、純文本、文件并重定向到其他action。如果您需要其他類型的 result,可以自定義 ActionResult,并實現(xiàn) ExecuteResult方法。例如,如果您希望將 PDF文件作為結(jié)果發(fā)送,您需要使用 PDF庫編寫能夠生成 PDF的 ActionResult。又如 RSS feed,可參見 how to write a RssResult in this post。 您可能不需要編寫自己的 view engine,但您也許可以考慮使用其他引擎來替代默認(rèn)的WebForm view engine。在我看來,最有趣的引擎就是 Spark。 如果您確實希望編寫自己的 view engine,可以看一下 Brad Wilson 的文章 : Partial Rendering amp。 View Engines in MVC。 13 視圖必須十分簡單整潔,它們只能包含 html標(biāo)記并調(diào)用 HtmlHelper的輔助方法。視圖中不能包含任何代碼,所以輔助方法必須十分方便,使您可以將代碼從視圖中提取出來,放到一個可測試的環(huán)境中去。正如 Rob Conery所說:如果有 if,就構(gòu)造輔助方法( If there39。s an IF, make a Helper)。 什么是 HtmlHelper輔助方法?其實就是 HtmlHelper 類的擴展方法,這是唯一的要求。 你可以從 Rob的文章 Avoiding Tag Soup中了解到為什么說 HtmlHelper 是封裝視圖中代碼的好方法
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1