![](/img/trans.png)
[英]ASP.NET MVC initialize Controller and call action programatically
[英]redirect in asp.net mvc 2 controller initialize routine
如果会话变为空,我需要从任何控制器重定向到登录页面,我尝试了此操作但它不起作用
protected override void Initialize(System.Web.Routing.RequestContext requestContext) {
base.Initialize(requestContext);
if (Session["FirstName"] == null) {
ret.msg = Resources.Resources.error_session_expired;
ret.status = "danger";
RedirectToAction("LogIn", "Account", new {
area = ""
}); // <-- i added a return in front of this, but it was red underlined
}
}
做这个的最好方式是什么
使用动作过滤器:
public class RedirectIfNullSessionAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Session["FirstName"] == null)
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{ "controller", "Account" },
{ "action", "Login" }
});
}
}
}
然后将其应用于您的控制器:
[RedirectIfNullSession]
public class MyController : Controller
{
....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.