我知道这个问题有点愚蠢,但我真的可以重定向到方法中的特定页面吗?
方法
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没有运行。还有其他方法可以使用重定向吗?
答案 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
方法的一条建议是,您正在检查用户是否具有管理员权限,而不是让方法只是制作自定义操作过滤器,如果想知道有关自定义操作过滤器的详情,请参阅here和here