asp.net mvc中在Filter中跳轉千萬不要使用Response.Redirect
如題,如果在Filter中用Response.Redirect,雖然URL是跳轉了,但是之後的Filter和Action還是會執行,不僅浪費資源,還會產生一些不必要的錯誤,或許,這些錯誤僅在你的錯誤日誌中能看到。
在Filter中錯誤使用跳轉如下:
filterContext.HttpContext.Response.Redirect
(string.Format("{0}#{1}",
filterContext.HttpContext.Request.Url.
AbsolutePath,
filterContext.HttpContext.Request.
QueryString["r_Anchor"]));
filterContext.HttpContext.Response.Redirect 就會產生後遺症,正確使用應該是:
filterContext.Result = new RedirectResult(string.Format("{0}#{1}",
filterContext.HttpContext.Request.Url.
AbsolutePath,
filterContext.HttpContext.Request.
QueryString["r_Anchor"]));
正確程式碼: