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 關注
- 221 瀏覽
添加回答
舉報