1. 程式人生 > >ASP.NET MVC 實現登錄後返回上一頁面操作

ASP.NET MVC 實現登錄後返回上一頁面操作

sha .net action pos isn 思路 ... 登錄頁面 hand

  功能描述:當用戶請求某頁面時,若該頁面需要登錄後再進行操作,則將用戶引導到登錄頁,登錄成功後自動跳轉回前一頁面

//登錄頁視圖代碼
public
ActionResult Login(string repath) { string reUrl=""; if(!String.IsNullOrEmpty(repath)) { reUrl = repath; } else { string hostUrl=""; hostUrl
= Request.UrlReferrer == null ? Request.Url.Host : Request.UrlReferrer.Host;
hostUrl = "http://" + hostUrl;
        pathUrl = Request.UrlReferrer == null ? "/" : Request.UrlReferrer.PathAndQuery;
reUrl = hostUrl + pathUrl;
}
     ViewData[ReUrl] = reUrl;
return View();
}


//登錄頁的post方法
[post]
public ActionResult Login(string userName, string pwd, string repath) { ....//該處判斷登錄是否成功 return Json(code = .., url = repath); }

  思路:轉到登錄頁面時,在controller中記錄返回路徑ReUrl,然後通過ViewData將ReUrl傳到登錄頁面的隱藏域中,登錄請求時又將ReUrl傳給post方法的Login,判斷完登錄是否成功後最後將這個ReUrl又傳給前端,前端跳轉成功。

  返回路徑的傳遞方向:Login→Login(View)→Login(post)→前端

ASP.NET MVC 實現登錄後返回上一頁面操作