上次在某個 fb 社團看到分享使用 jQuery 下載全部圖片
但裡面除了教你 include jQuery 之外都是用原生的 javascript 功能, 寫起來有點長
倒是學到如果網站沒有 jQuery 要怎麼幫他裝 jQuery XDDDD
來寫寫看全部都用 jQuery 下載圖片的寫法
2016/03/19
2016/03/18
[筆記] ASP.Net MVC 使用 ActionFilter 驗證 ModelState
利用 MVC 的 Model binding 時都要檢查 ModelState 是否有正確
但每個 Action 都要記得這樣檢查實在是太累了 (而且有些人會忘記....)
所以直接做成 Filter 讓每個 request 都會執行這樣~
寫好之後要在 FilterConfig 中加入
目前在寫的系統是用 Ajax From, 所以直接拋錯誤回去就可以 (讓 js 接手 on fail)
如果是重讀整個頁面的這樣就會直接讓 user 看到錯誤了~
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 看到錯誤了~
訂閱:
文章 (Atom)