ASP.NET MVC 實現登錄後返回上一頁面操作
阿新 • • 發佈:2017-10-18
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 實現登錄後返回上一頁面操作