我的代码中有以下内容:
if (Session["CurrentUrl"] != null)
{
var ip = new Uri((string)Session["CurrentUrl"]);
var ipNoPort = string.Format("{0}://{1}/{2}", ip.Scheme, ip.Host, ip.PathAndQuery);
return Redirect(ipNoPort);
}
return Home();
检查是否设置了Session变量,然后重定向到该URL或让操作返回到Home方法。
有没有人有一个如何将其转换为动作过滤器的例子?
我也可以使用“Home”参数提供动作过滤器,以便知道下一步去哪里?
答案 0 :(得分:5)
以下是重定向
的ActionFilter示例public class TheFilter: ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
if (controllerName !="TopSecert")
return;
var redirectTarget = new RouteValueDictionary
{{"action", "ActionName"}, {"controller", "ControllerName"}};
filterContext.Result = new RedirectToRouteResult(redirectTarget);
// Or give a url (the last in this example):
filterContext = new RedirectResult(filterContext.HttpContext.Request.UrlReferrer.AbsolutePath);
// The session you can get from the context like that:
var session = filterContext.HttpContext.Session;
}
}
编辑:从执行更改为已执行并添加会话处理。