1 回答
TA贡献1833条经验 获得超4个赞
您对的使用Response.Redirect是完全错误的,因为.cshtml没有像Webforms页面(.aspx)那样直接访问文件(它们需要通过控制器操作方法作为视图返回)。如果您在MVC控制器中工作,请RedirectToAction改用。
if (Session["IdUsuario"] == null)
{
return RedirectToAction("Index", "Home"); // replacement of Response.Redirect to root page
}
else
{
if ((bool)Session["Temporal"] == true)
{
// use RedirectToAction instead of Response.Redirect
return RedirectToAction("ContrasenaTemporal", "Login");
}
else
{
// return something else
}
}
目标操作方法也应如下所示:
// inside LoginController class
public ActionResult ContrasenaTemporal()
{
// other stuff
return View("ContraseñaTemporal");
}
编辑1:
如果要从视图页面重定向,您仍然需要使用MVC在MVC中使用虚拟路径Response.Redirect,指向上面给定的控制器操作方法:
@if (Session["IdUsuario"] == null)
{
Response.Redirect("~/Home/Index");
}
else
{
if ((bool)Session["Temporal"] == true)
{
Response.Redirect("~/Login/ContrasenaTemporal"); // follow MVC route convention
}
}
- 1 回答
- 0 关注
- 185 浏览
添加回答
举报