端午節快樂,大家。
好久沒寫部落格了。1個月了都。。。。抱歉。
今天給使用asp.net mvc的開發人員一些建議和分享經驗。
首先,如果你使用asp.net mvc,而且使用的js庫是jQuery, 那麼一定別錯過使用jquery UI。
在以前的工作中,我如果需要寫一個類似於Google搜尋的自動完成,那可能涉及到JS的編寫,CSS樣式,以及後台代碼如何產生json或者xml傳遞給自動完成控制項。
現在可以使用jQuery UI的Autocomplete,你的工作量會少的驚人。來看我如何?:
1.添加jquery ui js和css引用。
2.頁面添加一個textbox,並在該textbox上使用autocomplete指令碼:
3.添加Action,並返回json。
在第二步中我們看到ID為complete的textbox它的source為home這個controller下的action: Users。所以接下來我們要來實現Users這個action:
我們使用Asp.net mvc內建的Json轉換方式來把一個string Array轉化為json,並返回給用戶端的autocomplete控制項。
運行下看看結果:
先輸入一個“s”:
在Action設定斷點,可以看到jQuery ui的autocomplete控制項已經把s序列化成json傳輸到伺服器端,asp.net mvc還原序列化後,傳給方法Users(string term)。
這裡隨便寫了一個數組,並把該數組序列化成json,返回到用戶端,用戶端結果:
很簡單的幾步就搞定了自動完成。
最令人覺得激動地是所有的樣式都完成可以在jQuery UI官網上產生你需要的皮膚,然後匯出,替換現在的jquery ui的css檔案就OK了。
其次我覺得比較值得使用的是jquery ui的Dialog控制項和Datepicker控制項。
你的datepicker完成可以做成通用的控制項放到Share檔案夾下。
Dialog控制項的使用可以讓你的增刪改成彈出框方式來展示,增強網站的友好型。這裡你需要結合jquery的ajax方法,比如load,get來把view頁面載入下來,然後使用jquery的系列化方法來把資料Post到伺服器端。
具體的例子我以後盡量寫幾個,今天趕時間不寫了先。
最後一部分想和大家分享使用asp.net mvc的開發人員幾點忠告:
a.先刪除掉AccountController,從來都別使用那個內建的使用者管理Controller,自己去實現。
b.能使用IoC 容器就使用吧。 只有好處沒有壞處。例如Autofac,Ninject。 不過初級的程式員先注意下IoC容器的單體模式和原廠模式,不然項目中使用後,你會發現你悲劇了。多瞭解,深瞭解,否則,別用在項目中。
c.盡量別用ViewData這個玩意。
d.記得一定要使用FIlter這個屬性來實現AOP編程,你不需要自己去寫你的AOP組件。例如Dynamic.Proxy這些都先別考慮,首先考慮Global Filter。
e.自訂你的ViewEngine。 你需要定義好你的viewengine,不然以後你會發現很多擴充都是無法實現的。。。。。