谢谢!!
我有一个问题。
RedirectToAction不起作用,它会运行但不会路由到URL
它首先运行编辑控制器
public ActionResult Edit(int? id)
{
CheckAccess();
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
.....
}
它会在运行时访问CheckAccess()方法 return RedirectToAction(“Error”,“Index”);它运行正常,但没有路由到url,然后返回“编辑”控制器并运行下一个命令“if(id == null)。
public ActionResult CheckAccess()
{
int StaffUserType = 5;
if (Session["StaffUserType"] != null)
StaffUserType = Convert.ToInt32(Session["StaffUserType"]);
if (StaffUserType == 5)
{
//return Json(Url.Action("Index", "Error"));
return RedirectToAction("Error", "Index");
//return View("ErrorController/Index");
}
else
return View();
}
}
答案 0 :(得分:1)
Edit()永远不会返回RedirectToAction结果,因为不会捕获并返回CheckAccess()的返回值。
您可以修改CheckAccess()以返回bool
public bool CheckAccess()
{
int StaffUserType = 5;
if (Session["StaffUserType"] != null)
StaffUserType = Convert.ToInt32(Session["StaffUserType"]);
if (StaffUserType == 5)
{
return false;
}
else
{
return true;
}
}
然后在Edit中检查此结果,如果结果为false,则返回RedirectToAction。
public ActionResult Edit(int? id)
{
if (!CheckAccess())
{
return RedirectToAction("Index", "Error");
}
.....
}