[twMVC]ASP.NET MVC ─ 從無到有

  • 16001
  • 0
  • Web
  • 2012-07-08

[ASP.NET MVC - 從無到有]是小弟在 twMVC 2012/6/14 的活動中,所分享的一個主題,主要介紹怎麼樣從無到有建立一個MVC網站,逐步的從建立專案、套HTML版、建立Controller、View、Model、與使用Ajax、Validation、表單驗證、Routing 完成等等功能的實作,幫助你踏出ASP.NET MVC的第一步。

...繼續閱讀 »

[ASP.NET MVC]預編譯Razor Helper Method

會用預編譯不只是為了讓第一次網站執行時比較快速外,還有很多的原因,如事先發現View的編譯錯誤、讓客戶拿不到HTML,還有更重要的可以將View一同編譯到底層組件,將View當成組件使用,本篇說明如何將Razor的Helper Method預編譯到dll中,讓其他的專案也可以使用。

...繼續閱讀 »

[MVC]擴充JsonResult,自動處理Json或Jsonp的Request與轉型Json時的循環參考

有時寫一個Ajax Service,在寫的時候9成9都是自己網站用,那時多半不會考慮跨網站安全性問題,突然有其他同事說他也要用,就要回頭變動程式可以吃Jsonp,幾次下來就覺得要從根本解起,就寫了JsonPlusResult + ControllerPlus,由底層來處理這些事情,在開發的時候可以使用相同的習慣,做到多樣事情。

而內建的JsonConverter,在處理Json的Property轉換,遇到循環參考會出錯,但用ORM一定會遇到這問題,如Order.OrderDetails與OrderDetail.Order,這樣簡單的結構內建的JsonConverter就無法轉換了,後來改用Json.Net來處理轉換,也把這功能放入JsonPlusResult中。

...繼續閱讀 »

[MVC]JavascriptExtensionV1.1自動使用最新版的Javascript檔案

  • 8376
  • 0
  • Web
  • 2011-12-26

因為最近jquery頻頻更新,每次使用Nuget更新完後,又要改一些_Layout,忘了改又會照成頁面錯誤,而且我們的專案是使用預編譯,所以_Layout也是在dll中,為了更新View使用的javascript版本,我要改View、編譯、佈署dll與js檔,實在有夠麻煩的,所以就想了一個小方法,只要把js檔放在~/Scripts下,程式執行時,就會搜尋資料夾使用最新版的js檔,減少更新的步驟,也減少出錯的可能。

...繼續閱讀 »

[ASP.NET MVC]Razor Views 預編譯(Pre-Compile)[2]-獨立View並讓新舊View共存

  • 10498
  • 0
  • Web
  • 2012-03-27

本篇是承接上篇[ASP.NET MVC]Razor Views 預編譯(Pre-Compile)[1]-加快第一次執行回應速度,事實上使用預編譯(Pre-Compile)方法後,View就不一定要寫在同一個專案中,而且可以與原本的ViewEngine共存,當找不到dll中的View時,找原本放在資料夾下的View,或者反過來,先找原本放在資料夾下的View,找不到時用dll中的View,增加View的使用彈性,這些都可以做到,畢竟這只是System.Web.Mvc.ViewEngine的應用而以。

...繼續閱讀 »

[ASP.NET MVC]Razor Views 預編譯(Pre-Compile)[1]-加快第一次執行回應速度

  • 19347
  • 0
  • Web
  • 2011-08-07

ASP.NET 2.0之後的版本都有很貼心的功能,網頁部分是第一次執行時編譯,之後的瀏覽使用此編譯,好處是可以隨時編輯網頁,下次重新執行時又會再及時編譯,不需要透過Visual Studio編譯,但是缺點是第一次因為要執行編譯,回應會非常非常的慢,而且當網站一段時間沒有連線IIS會回收資源,所以常常隔天第一個使用系統人都比較幸運,要等ASP.NET及時編譯,當然也有另一個選項是所有的東西都預先編譯好,好處是全部都先編譯好了,執行時就不會在編譯,加快第一次執行的回應速度,壞處是必需使用Visual Studio編譯後才能更版,因為不是ASP.NET預設選項,設定的步驟不少,本編是針對ASP.NET MVC 3 的Razor View做預編譯設定。

...繼續閱讀 »

[ASP.NET MVC]解決Controller相同名稱衝突問題

ASP.ENT MVC 不像他牌MVC那麼囉嗦要設定東設定西,在ASP.NET MVC Controller只要繼承System.Web.Mvc.IController,且名稱後綴是Controller,什麼都不用設定,DefaultControllerFactory就會將MVC Project中所參考的組件(也就是說將Controller寫到別的dll中,也會自動註冊),將符合條件的Controller做自動註冊,當Request進來Route在Map時只比對Controller的Name,如果有寫通用Controller(如LoginController),很有可能有相同名稱,比對出一筆以上的Controller,因為系統不知道要使用那一個而照成衝突,這一點就不如他牌MVC方便,可以設定這個Route是對應到那一個Controller,它只能設定以那些命名空間為優先比對,以此方法解決衝突,雖然自由度沒那麼高,不過應該可以解決大部份問題。

...繼續閱讀 »

jQuery事件處理系列-bind與live

  • 62264
  • 0
  • Web
  • 2010-10-21

jQuery的最底層的事件綁定有二個,bind與live,這二個function的差異在bind是針對HtmlElement綁定,而live是對HtmlDocument綁定,使用live時會將selector與事件函式儲存,當任何HtmlElement發生事件都會同時引發HtmlDocument的事件,會檢查引發事件的HtmlElement有沒有符合儲存的selector,符合才會呼叫事件處理函式。

...繼續閱讀 »

用@font-face讓Opera Mobile 10顯示音標

  • 15552
  • 0
  • Web
  • 2011-01-21

我的英文因為不是很好,所以前些日子寫了一個放在Google App Engine,抓Google Dictionary的資料來,背單字小工具,最近增加手機版的,但是音標一直都無法顯示,我在我的Window Mobile 6.5上安裝了N個字型,改機碼都不行,試了好幾天快放棄時,我突然想起來我有一次問我們的設計師,在頁面中加上@font-face的用意何在,她叫訢我因為頁面有的字型在有些電腦可能沒有安裝,但下@font-face語法可以讓瀏覽器,下載字型,讓文字可以正確顯示,所以我就嘗試了@font-face,沒想到音標終於在我的Opera Mobile 10上正常顯示了。

...繼續閱讀 »

ASP.NET MVC TempData使用心得

在看TempData的說明時,有人說用一次就刪除,有人說一個Request就結束,在道聽途說下,有一次我的Code就出了Bug,一直死在TempData,最後看Source Code才發現,我對TempData的認知出了錯誤。

...繼續閱讀 »

為jQuery.Ajax加上Queue

  • 47921
  • 0
  • Web
  • 2010-11-26

Ajax在我的濫用下,曾經一個網頁同時送出50個左右的Request,使得網頁不穩定,人多同時瀏覽,還照成站台產生災難性失敗,不過這些Request還是要送,因為是不同系統透過Web Service取值(客戶不要快取),那怎麼辦呢??後來想到Queue的概念,google搜jqueue ajax queue還滿多資料的,以下是我的過滤的結果,供各位參考。

...繼續閱讀 »