mon*_*tro 2 c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4
我有一个控制器有很多动作.我需要根据这个条件阻止执行某些操作:
if (Session["MyObject"] == null) return RedirectToAction("Introduction");
Run Code Online (Sandbox Code Playgroud)
它应该重定向到默认的"简介"操作.
我可以在每个动作中加入这个条件,但是我想在一个地方定义这个条件,就像在控制器的构造函数中一样.
有任何想法吗?谢谢.
这是一个快速模拟,但我认为这个想法成立
public class CheckSessionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Session["MyObject"] == null)
{
// redirect must happen OnActionExecuting (not OnActionExecuted)
filterContext.Result = new RedirectToRouteResult(
new System.Web.Routing.RouteValueDictionary {
{"controller", "Tools"}, {"action", "CreateSession"}
}
base.OnActionExecuting(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2010 次 |
| 最近记录: |