如何重定向一个动作到另一个动作在MVC5

本文关键字:另一个 MVC5 一个 重定向 | 更新日期: 2023-09-27 18:11:42

我想要RedirectToAction到方法内部的另一个动作。我使用:

return RedirectToAction("ActionName", "ControllerName");

但是我得到了一个错误,它没有击中其他动作

我的控制器代码:

public ActionResult VisitCount(VisitorsViewModel objvvm)
{
    var UserID = System.Web.HttpContext.Current.Session["UserID"].ToString();
    var objEmpDepUTID = db.UserRightsSettings
        .Where(u => u.UserID.ToString() == UserID)
        .Select(e => new
        {
            objemployeeID = e.EmployeeID,
            objdepartmentID = e.DepartmentID,
            objusertypeID = e.UserTypeID
        })
        .FirstOrDefault();
    var EmployeeID = objEmpDepUTID.objemployeeID;
    var DepartmentID = objEmpDepUTID.objdepartmentID;
    var UserTypeID = objEmpDepUTID.objusertypeID;
    if (DepartmentID == new Guid("47D2C992-1CB6-44AA-91CA-6AA3C338447E") &&
       (UserTypeID == new Guid("106D02CC-7DC2-42BF-AC6F-D683ADDC1824") ||
       (UserTypeID == new Guid("B3728982-0016-4562-BF73-E9B8B99BD501"))))
    {
        return RedirectToAction("Index1", "NextFollowUp");
    }
    else
    {
        return RedirectToAction("Index2", "NextFollowUp");
    }
}
private ActionResult Index1()
{
    return View();
}
private ActionResult Index2()
{
    return View();
}

上面的代码没有正常工作——当if条件满足时,它没有执行其他操作。

如何重定向一个动作到另一个动作在MVC5

不能重定向到标记为private的方法。你需要让你的方法public .

public ActionResult Index1()
{
    return View();
}
public ActionResult Index2()
{
    return View();
}

如果你在同一个控制器中,试试这个:

return RedirectToAction("Index1");

代替:

return RedirectToAction("Index1", "NextFollowUp");

如果你从另一个控制器调用动作,使用:

RedirectToAction("Index1", "NextFollowUp");  

或者试试下面的代码:

return View("ActionName");

:

if (DepartmentID == new Guid("47D2C992-1CB6-44AA-91CA-6AA3C338447E") &&
   (UserTypeID == new Guid("106D02CC-7DC2-42BF-AC6F-D683ADDC1824") ||
   (UserTypeID == new Guid("B3728982-0016-4562-BF73-E9B8B99BD501"))))
{
   return View("Index1");
}
else
{
    return View("Index2");
}