亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

登錄后嘗試重定向C#MVC

登錄后嘗試重定向C#MVC

C#
慕娘9325324 2021-04-01 10:11:49
這是我的問題。用戶登錄后,我將嘗試驗證用戶密碼是否為臨時密碼。如果是這樣,我想重定向到另一個視圖。如果沒有,我想轉到應用程序菜單。但是,當它重定向時,它說找不到資源。if (Session["IdUsuario"] == null){    Response.Redirect("~/");}else{    if ((bool)Session["Temporal"] == true)    {        Response.Redirect("~/Login/Contrase?aTemporal.cshtml");// <--- Here is my issue    }
查看完整描述

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

    }

}


查看完整回答
反對 回復 2021-04-24
  • 1 回答
  • 0 關注
  • 221 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號