课堂上的RedirectToAction - 我该怎么做?

时间:2015-12-23 00:18:40

标签: asp.net-mvc

如何将RedirectToAction放入Claas,我试图这样做。

public static void UserOnlineNow()
    {
        int brugeridValue = Helper.BrugerInformation.SessionVale.SessionBrugerid();
        DataLinqDB db = new DataLinqDB();
        var bruger = db.brugeres.FirstOrDefault(i => i.Id == brugeridValue);
        if (bruger != null)
        {
            return RedirectToAction("index", "account");
        }
    }

我在这里试试:

HttpContext.Current
RedirectToAction

之前

我需要在课堂上使用它的原因是我不会写太多的地方。

1 个答案:

答案 0 :(得分:2)

RedirectToAction在基类Controller类(继承了普通控制器)中定义,您应该在控制器中使用它。

如果您担心在很多地方执行此代码,您应该考虑编写一个操作过滤器并将其应用于您的控制器/操作方法。

public class OnlineUserCheck : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        bool burgerExists = false;
        //check your table and set the burgerExists variable value.
        //burgerExists=db.brugeres.Any(s=>s.Id==3453); // replace hard coded value
        if (burgerExists)
        {
            filterContext.Result = new RedirectToRouteResult(
                     new System.Web.Routing.RouteValueDictionary {
                        {"controller", "Inspection"}, {"action", "Index"}
                    }
                );
        }
        base.OnActionExecuting(filterContext);
    }
}

您可以使用此动作过滤器修饰动作方法。

[OnlineUserCheck]
public ActionResult Index()
{
  return View();
}