如何将一个动作重定向到另一个动作内部如果MVC5中的方法?

时间:2016-10-06 09:12:38

标签: c# .net asp.net-mvc-5

我想重定向到action中的另一个动作if if method。 我用了

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

但我收到了错误。错误意味着它没有击中另一个动作。

Code

我的控制器代码

     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();
    }

上述代码无法正常运行。如果条件满足,它没有击中另一个动作。我尝试了所有方法,但我没有得到任何解决方案。

2 个答案:

答案 0 :(得分:2)

如果你在一个控制器里面试试这个

return RedirectToAction("Index1");

而不是

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

这使用if来自其他控制器的动作

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");
        }

答案 1 :(得分:2)

您无法重定向到标记为private的方法。您需要制作方法public

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