MVC.NET的项目中,如何在控制器的构造函数里跳转到其他页面
MVC.NET的项目中,如何在控制器的构造函数里跳转到其他页面
例如,我想验证是否登录,如果没有,跳转到登录页,代码如下:
public class SpaceBaseController : Controller
{
public SpaceBaseController()
{
if (string.IsNullOrEmpty(Common.LoginUserName) == true)
{
string url = System.Web.HttpContext.Current.Request.Url.ToString();
System.Web.HttpContext.Current.Session["url"] = url;
//我希望在这里就可以跳转,现在也确实可以跳转,但是在登录成功以后获取不到Session里的值
System.Web.HttpContext.Current.Response.Redirect("/member/login");
}
}
}
public class SpaceController:SpaceBaseController
{
public ActionResult Update()
{
//但是父类的构造函数里没有跳转,继续运行到这里了,这里运行完后才跳转
Member member = new Member(Common.LoginUserName);
}
}
我现在希望能够在父类就可以直接跳转,按照我上边父类里的跳转方法,在登录成功以后获取不到Session里的值,也就是说无法跳转到登录前的页面
[解决办法]
用过滤器实现。
public class UserAuthorizeAttribute : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
if (用户没有登录) {
filterContext.Result = new RedirectResult(跳转的url, true);
}
}
}
[UserAuthorize]
public ActionResult Update()