我想在所有的请求执行前判断一下,符合条件后直接跳转到另外一个url,比如www.baidu.com,而不执行下面的action,应该怎么做?
如果是MVC页面,可以添加到全局过滤器,在global.asax里去注册一下.过滤器实现一下ActionFilterAttribute即可
public class UrlFilterAttribute : System.Web.Mvc.ActionFilterAttribute{
public override void OnActionExecuting(System.Web.Mvc.ActionExecutingContext filterContext)
{
//添加你的具体逻辑
}
}
新建一个控制器,在你其他的控制器里继承,在这个控制器里进行验证,不通过的直接。 return this.Redirect(URl);即可。
你这一行代码必然是要写在BaseController的某个action下,如果用户不请求这个action怎么搞?
@Eysa: basecontroller里不用写action阿。直接写方法判断啊。不太友好的就是你所有的控制器都需要继承一下这个就行了。实在不行可以去看看过滤器!
利用特性可以实现!
新建一个baseController,你所有的controller都继承这个
在baseController里面做验证跳转
要么BaseController,要么全局Filter。
Application_BeginRequest
{Response.Redirect}
good luck
过滤器
用过滤器实现比较好。