demoshop

demo, trying to be the best_

好久沒發敗家文,這次敗家文竟然是主機掛掉....事隔三年,demo小鋪用的主機在兩天前無預警掛掉,努力了一個晚上雖然是救回來了,但是第二天早上起來赫然發現是迴光返照,在宣讀了死亡宣言後, demo 立刻連上電腦家買了一台新的.....

製作網站時常有要讓表單能輸入HTML的需求,但為了安全性,ASP.NET預設都會阻擋這類行為來避免攻擊。不過實務上確實有需要讓一些表單允許輸入語法,在 Web form 和 MVC 也都有提供相關的設定,不過在 ASP.NET MVC3 上增加了一個更安全的設定方式,讓網站的整體安全性更加分。

ASP.NET MVC3 提供了一個 IValidatableObject 介面,提供類別層級的驗證,因此很適合在這裡寫入複合的商業邏輯,你可能會想使用之前介紹過的 IClientValidatable 自定驗證來達成,但實作上就會發現 IClientValidatable 自定驗證無法寫出同時需要考慮到多個屬性欄位的驗證邏輯,因此當你的驗證是要同時考慮兩個以上的屬性欄位,IValidatableObject 就是一個相當不錯的驗證方式。

有許多的時候我們會希望在前端驗證後,表單送出前再加入自己的特殊處理事件,所以會不希望驗證是在使用者按下 Submit 後才執行,此篇舉一個很爛的例子來介紹如何自行呼叫前端驗證(例子真的很爛,我想兩天想不到簡單的例子....)

ASP.NET MVC3 內建的錯誤訊息都十分的詳細,但我們自己擴充的都只會顯示【欄位 XX 無效。】這種沒啥用的錯誤訊息,因此本文會說明利用一些技巧來改變錯誤訊息的內容。

之前 demo 就已經介紹過在 ASP.NET MVC 2的時候測試 Routes 的文章,剛好今天看到 Vistal Studio 2010 有一個套件也是做類似的事情,所以實際把玩了一下,感覺該套件不是那麼的方便,因此特別發文介紹一下在 ASP.NET MVC3 超簡單測試 Routes 的方法,簡單到嚇死人唷。

這一個套件實在是深得我心,因為 demo 在寫 Blog 的時候經常的會引用會連結其他網友的文章,以往就要乖乖的先複製網址再複製網站 Title,十分的麻煩但有了 Fire Link 後一切變得超級方便,就連分享到微網誌也變得相當容易,如果你也經常需要複製網址的話千萬不要錯過這套件哩

此篇是自訂擴充驗證的最後一篇,先來說說什麼叫做「不等於驗證」此驗證就是和內建的 Compare 剛好相反,您可以自訂某一欄位的值不能與另一個欄位相同,應用層面也滿廣的,比如有個欄位要輸入親子關係,那A姓名就不能等於B姓名,而且這次介紹的是彈性最高的 addMethod 所以如果你有什麼很神奇的想法,這篇就是一定要學會的。

昨天接到一個案子,客戶的主機環境比較特殊所以很好心的提供了一個 VM 來讓我無痛模擬他們的環境來開發,這個 VM 是使用 VirtualBox 做出來的 XP sp3 ,沒有做過任何優化所以容量高達 10G 雖然說現在硬碟大到嚇死人,但是一個那麼大的 VM 還是讓人看起來不滿意,於是就動手將它壓縮順便記錄下來,看看會不會剛好幫助到有需要的人

此篇文系列文的第四篇,接者介紹自訂驗證規則的方法,這次介紹的是屬於「範圍驗證」範圍驗證是一個很常使用到的驗證規則,比如數值的最大值最小值或是字串的最短長度和最長長度但很巧的這些都內建了...使用 Range 可以驗證數值範圍,使用 StringLength 可以驗證字串長度,不巧的是我想不出其他範例....所以只好上網搜尋範例

這次來到第二種自訂驗證的方法 SingleVal,其實這裡說的這些都是屬於前端驗證的方法,後端是很隨意的 讓我們來假設一下,今天 demo小鋪開放註冊會員,但是不希望有任何人註冊有關於 demo 這個名字,如果使用上一篇文章介紹的 AddBool 方式來寫,當哪一天要改成 「demoshop」 或是 「demo小鋪」的時候就會有很多地方要改,但是明明驗證邏輯是一樣的只是驗證的比對值不同,所以可以利用所謂的 AddSingleVal 方法來擴充驗證,要比對的值使用參數傳入,驗證的邏輯則是固定,這樣子就可以運用到多個情境,以下就是介紹