2016/06/18

[筆記] 使用自訂的 Scaffold Templates 來加快 ASP.NET MVC 的開發

最近要開發的新系統終於準備好要開始投入大量人力開發了

由於多人開發上要要求每個人在某某功能的版面時要按照怎樣的結構來刻 HTML 有難度 

加上之前跟某位朋友聊天時提到他們家有使用 Scaffold Templates

故想說.... 與其一直宣導該怎樣寫,不如讓大家預設拿到的就是結構已經長好的頁面

2016/03/19

[筆記] 用 jQuery 批次下載網頁上的圖片

上次在某個 fb 社團看到分享使用 jQuery 下載全部圖片

但裡面除了教你  include jQuery 之外都是用原生的 javascript 功能, 寫起來有點長

倒是學到如果網站沒有 jQuery 要怎麼幫他裝 jQuery XDDDD

來寫寫看全部都用 jQuery 下載圖片的寫法

2016/03/18

[筆記] ASP.Net MVC 使用 ActionFilter 驗證 ModelState

利用 MVC 的 Model binding 時都要檢查 ModelState 是否有正確

 if (!ModelState.IsValid) return new HttpStatusCodeResult(HttpStatusCode.BadRequest) 


但每個 Action 都要記得這樣檢查實在是太累了 (而且有些人會忘記....)

所以直接做成 Filter 讓每個 request 都會執行這樣~

     public class ModelStateValidationFilter : System.Web.Mvc.ActionFilterAttribute
    {
        public override void OnActionExecuting(System.Web.Mvc.ActionExecutingContext filterContext)
        {
            if (!filterContext.Controller.ViewData.ModelState.IsValid)
            {
                var errors = from errs in (
                        from modelstate in filterContext.Controller.ViewData.ModelState.Values
                        select modelstate.Errors
                    )
                    where errs.Count > 0
                    select errs[0].ErrorMessage;

                // 用 Elmah 記錄誰在哪邊沒通過驗證
                Elmah.ErrorSignal.FromCurrentContext().Raise(new Exception(String.Join(",",errors.ToArray())));
                // 回應錯誤
                throw new HttpException(400);
            }

        }
    }


寫好之後要在 FilterConfig 中加入

    filters.Add(new ModelStateValidationFilter()); 

目前在寫的系統是用 Ajax From, 所以直接拋錯誤回去就可以 (讓 js 接手 on fail)

如果是重讀整個頁面的這樣就會直接讓 user 看到錯誤了~

2015/12/30

[筆記] Mac OS 從終端機開啟 finder 的方法

在終端機 cd 到想要的目錄之後,輸入

 open .

即可

注意...  是歐噴空一格點喔

2015/07/11

[筆記] HTML Agility Pack

最近心血來潮要爬某個地方的 html 來用, Google 了一下發現了 HTML Agility Pack 這個套件