如题,如果在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"]));
正确代码:
ASP.NET MVC中正确使用重定向
本文介绍在ASP.NET MVC应用中如何正确地在过滤器(Filter)内使用重定向功能,避免执行后续的过滤器和操作,减少资源浪费及潜在错误。
1485

被折叠的 条评论
为什么被折叠?



