方法内的RedirectToAction

时间:2014-09-08 05:33:54

标签: asp.net-mvc

我知道这个问题有点愚蠢,但我真的可以重定向到方法中的特定页面吗?

方法

public void CheckAdminPrivilege()
{

    if (some if statement)
    {

        //the redirect wont work
        RedirectToAction("someAction", "someController");

    }
}

调用方法的控制器

public ActionResult CreateAdmin()
{           
    //this one wont redirect
    CheckAdminPrivilege();


    //SOME OTHER CODE

    return View();
}

当我调用CreateAdmin ActionResult时,CheckAdminPriviledge方法正在运行,但RedirectToAction没有运行。还有其他方法可以使用重定向吗?

1 个答案:

答案 0 :(得分:2)

如图所示尝试一下好的工作:

方法

public bool CheckAdminPrivilege()
{  
    if (some if statement)
    {
       return true;
    }
    else
    { 
       return false; 
    }
}

调用方法的控制器

 public ActionResult CreateAdmin()
 {   
    bool token;        
    token = CheckAdminPrivilege();
    if(token == true)
    { return RedirectToAction("someAction", "someController"); }

    //SOME OTHER CODE

    return View();
 }

或试试这个:

方法

public ActionResult CheckAdminPrivilege()
{  
    if (some if statement)
    {
      return RedirectToAction("someAction", "someController");
    }
      return null;
}

调用方法的控制器

public ActionResult CreateAdmin()
{   
    CheckAdminPrivilege();

    //SOME OTHER CODE

    return View();
}

我认为使用CheckAdminPrivilege方法的一条建议是,您正在检查用户是否具有管理员权限,而不是让方法只是制作自定义操作过滤器,如果想知道有关自定义操作过滤器的详情,请参阅herehere