主頁 > .NET開發 > 《ASP.NET MVC 4 實戰》 - 學習筆記

《ASP.NET MVC 4 實戰》 - 學習筆記

2020-09-10 09:44:46 .NET開發

《ASP.NET MVC 4 實戰》

========== ========== ==========
[作者] (美) Jeffrey Palermo (美) Jimmy Bogard (美) Eric Hexter (美) Matthew Hinze (英) Jeremy Skinner
[譯者] (中) 徐燕萍 李萍 林逸
[出版] 人民郵電出版社
[版次] 2014年05月 第1版
[印次] 2014年05月 第1次 印刷
[定價] 69.00元
========== ========== ==========

【第01章】

(P003)

Web 本質上是無狀態的,

【第02章】

(P015)

框架是如何知道將 URL 映射到一個特定的控制器動作的?答案就在 Global.asax 檔案的 RegisterRoutes 方法中,

Web API 是微軟隨 ASP.NET MVC 4 一起發布的一個 Web 服務框架,

(P016)

ViewBag 本質上是一個字典 —— 它提供了一種存盤資料的方式,這些資料隨后能夠在視圖中進行訪問,

(P017)

@ 前綴表示 HTML 與代碼之間的轉換,

【第03章】

(P032)

視圖的職責看似很簡單,它的生存目標是取得一個送給它的模型,并用這個模型來渲染內容,由于控制器及相關服務已經執行了所有業務邏輯,并將結果包裝成一個模型物件,故視圖只需要知道如何取得這一模型,并把它轉換成 HTML ,

(P033)

可以呼叫 View 方法的第二個多載版本來接受一個明確的視圖名,

(P034)

能夠將資料傳遞給視圖的三種不同方式,即使用 ViewDataDictionary (視圖資料字典) 、 ViewBag (視圖包) ,以及強型別視圖,

(P035)

只要從字典接受資料,就必須執行型別轉換,

(P036)

為了使用強型別視圖,首先必須確保控制器動作適當地設定了 ViewData.Model ,

(P037)

Razor 的多行代碼陳述句是以 @ 后跟開花括號字符開始的 : @{ ,

(P038)

資料在渲染到螢屏之前是默認自動編碼的,若要顯示未編碼資訊,可以使用 Html.Raw 方法來強迫渲染原始文本,

(P043)

對于簡單的顯示模型和編譯器模型, EditorForModel 和 DisplayForModel 方法可能就夠了,

【第04章】

(P051)

IController 介面定義了控制器最基本的元素 —— 一個單一的 Execute 方法,它接收一個 RequestContext 物件,

ControllerBase 類直接實作 IController ,但只包含了我們曾考察的幾個特性所必需的基礎架構,

(P052)

Controller 類繼承于 ControllerBase ,因此它包含了 ControllerBase 所定義的屬性 (如 ViewData) ,但它還增加了大量的附加功能,

(P053)

更好的做法是依靠視圖,以使表現邏輯與控制器分離開來,這更易于修改應用程式的用戶界面,而無需改變控制器代碼,

動作方法選擇器是一種注解屬性,它可以用來對動作方法進行修飾或標注,

選擇器的名稱總是 XXXAttribute 形式的,但在使用時,需要將 Attribute 部分去掉,

(P057)

請記住,呼叫 ModelState.IsValid 并未真正執行驗證,它只是檢查驗證是否已經成功或失敗,驗證本身是在呼叫控制器動作之前發生的,

(P060)

每個測驗都有三個階段 —— Arrange (準備) 、 Act (動作) 、 Assert (斷言) ,

【第05章】

(P067)

視圖模型的目的十分簡單 —— 它是一個專門為用于視圖而設計的模型,它提供了一個建立在域模型之上的簡化介面,以保持視圖決策最小化,

(P068)

為了使視圖盡可能是可維護的,它應該盡可能簡化 —— 復雜的回圈和計算邏輯應該在更高層執行,視圖唯一應該做的只是顯示這種計算的結果,

(P070)

控制器與視圖共享了一個 ViewDataDictionary 型別的物件,其名稱為 ViewData ,

【第06章】

(P076)

服務器是保護資料、防止劣質輸入的最后一道防線,

【第07章】

(P088)

現在有許多流行的 JavaScript 庫 (包括 jQuery 、 Prototype 、 MooTools 和 Dojo 等) ,所有這些都是為了讓 JavaScript 更易于使用,并輔助跨瀏覽器的 JavaScript 功能標準化,

在使用 jQuery 時,主要是使用 jQuery 函式 (基本上是使用別名符號 “$”) ,它能夠根據其背景關系執行各種不同的操作,

當把一個字串傳遞給 “$” 函式時, jQuery 會將其視為 CSS 的選擇器,并嘗試在頁面中找出與該選擇器匹配的任何元素,

“#” 表示元素的 id 標簽屬性,

“.” 表示元素的 class 標簽屬性,

空格表示子元素,

(P089)

最好將所有事件系結和 jQuery 代碼都包含到 ready 處理程式之中,

(P092)

只有啟用了 JavaScript 的瀏覽器才能向服務器發送 Ajax 請求,否則只能發送常規的 HTTP 請求,

(P095)

由于 JavaScript 是將函式作為物件來使用的,所以 this 關鍵字的含義并不總是顯而易見的,因為它是背景關系敏感的,

(P098)

對 BeginForm 的呼叫會渲染表單的開標簽,而 using 陳述句的閉括號會渲染 <form /> 的閉標簽,

【第08章】

(P113)

認證確保用戶已提供了適當的訪問系統所需的憑據,一旦用戶登錄,那么他們便是已認證的了,

授權發生在認證之后,且包括對給定用戶是否有權對系統做某事的決策,當用戶訪問一個其他人不可用的資源時,必須得到明確的授權,

(P118)

決不相信輸入,決不、永遠、永遠也別期望輸入是安全的,無論是人類用戶或是機器,危險的輸入都是陷入 XSS 攻擊的根源,

HTML 編碼是將 HTML 轉換成文本,這種 HTML 會被瀏覽器解釋成渲染時不再解釋的符號,

【第09章】

(P129)

通過使用路由, URL 完全能夠與底層實作解耦,

(P131)

對于 URL ,大小是有關系的,而且是越小越好,

(P136)

路由處理程式是實作 IRouteHandler 介面的類,并負責構造適當的 HTTP 處理程式,以便為所選路由處理請求,

【第10章】

(P157)

為了創建一個型別的實體,你必須通過開泛型型別創建一個閉泛型型別,

【第11章】

(P173)

利用 AutoMapper 讓開發人員能夠只寫一次代碼,然后只要用一個宣告,就可以在很多地方運用它,

【第12章】

(P174)

注重保持控制器輕量級是重要的,

(P175)

減輕控制器負擔的快速方式是去除其責任,

(P177)

重構不會讓事情簡單很多,但一個簡單的更改可能會明顯降低圈復雜度,并且能夠減輕與復雜控制器關聯在一起的測驗努力和維護負擔,

【第13章】

(P193)

T4MVC 是一個強大的工具,它能夠消除 ASP.NET MVC 應用程式中的許多魔術字串激增問題,

【第14章】

(P194)

Nuget 是隨 MVC 一起安裝的,并使得 MVC 開發更容易,

【第15章】

(P208)

NHibernate 要求至少有一個映射,

(P209)

Log4Net.config 檔案含有 log4net 的配置資訊,該資訊廣泛適用于任何型別的應用程式,

【第16章】

(P222)

框架包含一個 ControllerBase 類,它為管理 ViewData 和 TempData 提供了最基本的屬性,

(P223)

動作是控制各個服務器請求主邏輯的方法,但并不是一個控制器類的所有方法都有資格作為一個動作,

(P230)

動作有助于你輕松地講單個控制器分解成一些基本功能,而動作過濾器則為在動作執行之前或之后插入一些代碼提供了掛接手段,動作選擇器為動作呼叫器提供了應選擇哪一個動作執行的線索,而動作結果有助于封裝重復的渲染邏輯,

【第17章】

(P233)

布局也可以相互嵌套,因此,可以為整個網站的通用模板定義一個泛型網站級布局,更具體的布局然后可以定義更具體的模板和新的內容塊,

當多個視圖共享公用內容時,運用布局是最好的方式,然后可以把 (視圖) 內容推送給布局,每個視圖只需要提供自己的內容片斷,

(P234)

渲染分部的機制很簡單,可以在一個父視圖中使用 RenderPartial 方法或 Partial 方法,

即使不與其他視圖進行內容共享,分部也可以用來簡化和減少視圖中的標記量,

(P235)

Html.RenderPartial() 是一個無回傳方法,它立即將分部渲染到回應流,而 Html.Partial() 回傳一個字串被立即渲染到視圖,

在 Razor 中, Html.RenderPartial 必須放在一個代碼塊中,

(P237)

常規控制器動作與子動作之間的唯一區別就是這個 ChildActionOnly 注解屬性,

【第18章】

(P247)

作為開發者,經常容易受到技術細節、設計模式,以及建立優雅的可維護體系結構等方面的困擾,而忽略關注事情的真正本質 —— 解決用戶的問題,如果應用程式不能實際作業,即使有最可維護的代碼,對用戶也是毫無幫助的,

(P248)

知道何時或何處才適合使用一種技識訓工具,與知道如何使用這一技術是同等重要的,

(P251)

DI 容器本質上是一個智能工廠,像其他工廠類一樣,其職責是創建物件的實體,但它也知道如何實體化物件的依賴性,

(P253)

任何對基礎結構的某種外部依賴性都可以用一種很好的候選辦法來實作,這種辦法就是將這種依賴性提取出來,形成一個由控制器使用的介面,

【第19章】

(P261)

Nuget 包是一個簡單的 zip 檔案,它含有一個清單和需要安裝到 Visual Studio 專案中的檔案,它還包含了三個 PowerShell 腳本,用于在安裝、卸載和專案啟動期間實作自動化,Nuget 包是通過其 ID 進行標識的,這是一個用以唯一標識包及其版本號的字串,清單檔案含有以下方面的資訊 : 安裝期間需要添加到專案的檔案、依賴包串列,以及包括作者、專案網站 URL 和許可 URL 等資訊的附加元資料,

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/1689.html

標籤:ASP.NET MVC

上一篇:jQuery Ajax.BeginForm方法回呼函式高版本3.3.1不兼容問題

下一篇:UWP使用Microsoft.Data.Sqlite的記錄

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more