Time of Update: 2018-12-06
asp.net3.5中已經整合了序列化對象為json的方法。 1:System.Runtime.Serialization.Json; 2:System.Web.Script.Serialization兩個命名空間下的不同方法進行序列化和還原序列化。 第一種方法:System.Runtime.Serialization.Json Code highlighting produced by Actipro CodeHighlighter (freeware)http:/
Time of Update: 2018-12-06
在上一篇文章asp.net mvc源碼分析-路由篇 如何找到 IHttpHandler中最後提到了MvcHandler,來上我們看看它的定義 public class MvcHandler : IHttpAsyncHandler, IHttpHandler, IRequiresSessionState它有幾個比較重要的屬性:internal ControllerBuilder ControllerBuilder ,ControllerBuilder
Time of Update: 2018-12-06
站在伺服器磁碟上的實體路徑: HttpRuntime.AppDomainAppPath 虛擬程式路徑: HttpRuntime.AppDomainAppVirtualPath任何於Request/HttpContext.Current等相關的方法, 都只能在有請求上下文或者頁面時使用. 即在無請求上下文時,HttpContext.Current為null. 而上面提到的方法一直可用.對於全域Cache對象的訪問亦然. ======================================
Time of Update: 2018-12-06
本些列文章是以asp.net mvc原始碼為例按照asp.net mvc執行順序一一分析和解釋。上篇文章asp.net mvc源碼分析-Controllerl篇 如何建立Controller執行個體 講到了如何建立Controller,在建立後就調用 controller.Execute(RequestContext);在ControllerBase的Execute方法很簡單 VerifyExecuteCalledOnce(); // 確保一個controller執行個體只調用一次,
Time of Update: 2018-12-06
在使用了URL重寫的頁面,我們為了保證使用者進行PostBack後頁面的URL仍然是,我們原先展現給使用者的連結,比如是list_1.html而不是list.aspx?page=1我們需要使用app_browsers目錄,存放瀏覽器定義檔案,相關說明可以參考msdn:http://msdn2.microsoft.com/zh-cn/library/ms228122(vs.80).aspx <!--可在
Time of Update: 2018-12-06
將Cookie的有效範圍限制到域。 預設情況下,Cookie 與特定的域相關聯。例如,如果您的網站是 www.contoso.com,那麼當使用者向該網站請求頁面時,您編寫的Cookie就被發送到伺服器。(有特定路徑值的Cookie除外) 如果您的網站有子域(例如 contoso.com、sales.contoso.com 和 support.contoso.com),就可以把Cookie同特定的子域相關聯。為此,需要設定Cookie的 Domain 屬性,如下所示:
Time of Update: 2018-12-06
要想瞭解asp.net 2.0的非同步頁的處理過程,先列出頁面的生命週期: 1 :Init 事件: 頁面初始化 ,初始化設定。 2: LoadViewState方法: 載入檢視狀態, 填充ViewState屬性。 3 :LoadPostData方法: 處理回傳資料, 處理傳入表單資料。 4: Load 事件: 載入頁面 ,頁面控制項初始化完成並反映了用戶端的資料。 5
Time of Update: 2018-12-06
緊接著上篇asp.net mvc源碼分析-Action篇 ParameterDescriptor 文章 在ReflectedParameterBindingInfo有這個public override IModelBinder Binder屬性,同時在ControllerActionInvoker中也有一個類似的 protected internal ModelBinderDictionary
Time of Update: 2018-12-06
緊接著上篇 asp.net mvc源碼分析-Controllerl篇 ControllerDescriptor 現在我們該看 FilterInfo filterInfo = GetFilters(controllerContext, actionDescriptor);這句代碼了,意思很好明白就是擷取當前的FilterInfo資訊,而該方法非常簡單就一句return new FilterInfo(_getFiltersThunk(controllerContext,
Time of Update: 2018-12-06
緊接著上篇asp.net mvc源碼分析-Action篇 Filter 中提到了 IDictionary<string, object> parameters = GetParameterValues(controllerContext, actionDescriptor);首先這個方法的目的很明白擷取當前Action參數名稱和值得一個字典。 protected virtual IDictionary<string, object>
Time of Update: 2018-12-06
在上篇asp.net mvc源碼分析-Controllerl篇 TempData資料存放區 我們講到了ActionInvoker.InvokeAction(ControllerContext, actionName) 這句,當時跳過了,現在我們首先來看看ActionInvoker屬性的定義吧: public IActionInvoker ActionInvoker { get { if (_actionInvoker == null) {
Time of Update: 2018-12-06
在上篇文章asp.net mvc源碼分析-Action篇 IModelBinder中我們提到了ValueProvider,其實這個東西是Controller的屬性,在寫前面Controller的是曾打算把它寫書來,後來有以下在後面用的時候在寫它相關的東東吧,需求才能推動發展啊。先說明一下這個屬性石很重要的,Action參數的值最總都是通過它來擷取的。 public IValueProvider ValueProvider { get {
Time of Update: 2018-12-06
截止上篇文章asp.net mvc源碼分析-ActionResult篇 RazorView.RenderView 相信大家對mvc的大致流程應該有所瞭解。現在我們來看看我們在mvc開發中用的最多的幾個方法,我想排在第一的應該是Html.RenderAction和Html.RenderPartial吧。先說簡單的吧:RenderPartial和Partial public static void RenderPartial(this HtmlHelper htmlHelper, string
Time of Update: 2018-12-06
IntroductionThere are many .NET Web applications built on ASP.NET 1.1 and 2.0, which run on the Windows server at the same time. The special case is in the Web site Main: there are some ASP.NET 1.1 projects built into the site: Proj1.1, etc. and
Time of Update: 2018-12-06
接著上篇 asp.net mvc源碼分析-Action篇 DefaultModelBinder 我們已經擷取的了Action的參數,有前面的內容我們知道Action的調用時在ControllerActionInvoker類的InvokeActionMethod方法。 protected virtual ActionResult InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor
Time of Update: 2018-12-06
項目中有個幾個表單需要多選功能,用JS寫了一下,沒有用傳統的checkbox,原因是當選項很多的時候很容用漏選,當然這也可能是我個人感覺,弄了個很醒目的效果,使選中的東西可以很明了的看出來。記得以前看過asp.net自訂控制項,就自己封裝了一下,雖然代碼很醜,但是也方便我們團隊中的學弟學妹使用,不用管那麼每次都複製一次js.效果如下使用很簡單:1.引用Controls.dll2.在VS工具列中添加選擇項3.複製資源檔放到網站項目中4.在web.config中配置<appSettings&g
Time of Update: 2018-12-06
ASP.NET MVC簡介這學期有門ASP.NET的課程,由於我接觸這個東西比較早,覺得沒有再學一遍的必要,就和老師申請自己學一點東西,就不去課堂上打醬油了,這樣我就可以抽出時間偷偷出來實習了。老師想都沒想就答應了,時間過的真快,轉眼就期末了,老師在考試2個小時之前給我出了一個難題,給我8分鐘讓我給大家介紹一下MVC,為了對一學期沒上課有個交代,我就硬著頭皮答應了,草草的想了想花了幾分鐘做了個PPT.其實PPT中很多說法並不對,時間過了,我也就懶得改了輕拍怕疼。
Time of Update: 2018-12-06
接著上篇asp.net mvc源碼分析-ActionResult篇 ViewResult 中有ViewEngineResult result = ViewEngineCollection.FindView(context, ViewName, MasterName)這麼一句,它究竟是怎麼找到View的了?首先放我們看看你ViewEngineCollection中的FindView方法吧,其實就一句return Find(e => e.FindView(controllerContext,
Time of Update: 2018-12-06
接著上文asp.net mvc源碼分析-ActionResult篇 FindView 我們已經建立好view了,大家還記得在BuildManagerCompiledView的Render方法中最後調用的是RenderView。可能是跟人喜好問題,還有就是我工作項目用到的多數是Razor,所以這裡就講講RazorView吧。想讓我們可看看RazorView的建構函式有什麼特別的地方 public RazorView(ControllerContext controllerContext,
Time of Update: 2018-12-06
在上篇文章asp.net mvc源碼分析-RenderAction和RenderPartial我們提到了一個常用的RenderAction方法,除了它我們還會經常遇到表單提交,這時我們通常會用到BeginForm。讓我們來看看你BeginForm是如何使用的運行結果就是產生form表單一般我們的表單提交都涉及到強型別,所以一般需要@model MvcApp.Controllers.UserInfo指令,那我們來看看你用@using (Html.BeginForm())