[英]Back Button issue in ASP.NET MVC Web Application
這是很難解釋的問題。
讓我描述一個場景。
我希望它能清楚說明我在尋找什么。
我嘗試過的幾種可能的解決方案:
我不完全相信上述解決方案。 我希望以系統的方式獲得一些最佳實踐,並以優雅的方式解決問題。
如果您有關於我正在使用的現有解決方案的建議,以及您有很好的解決方案,請幫助我。 請分享。
謝謝大家
僅供參考。我正在使用ASP.NET MVC 4進行開發。
使用history.js控制history.back()事件。 您只需替換最后一頁的狀態以指向儀表板或所需的頁面(在Web應用程序內部;出於安全原因,禁止跨域)。 當用戶單擊“后退”按鈕時,將加載定義的頁面,而不是登錄頁面。
https://github.com/browserstate/History.js/
對於這種UI交互,代理解決方案太復雜了。 客戶端控制是您解決方案的最佳方法。 HTML5參考文獻為此定義了History API( http://www.w3.org/TR/html5/history.html )。 不幸的是,並不是所有的瀏覽器都立即實現它。 那是因為history.js腳本存在。
在用於注冊和登錄頁面的Controller / Action方法中,檢查用戶是否已經登錄並重定向到。 儀表板。
這樣的事情取決於您的身份驗證方式。
public ActionResult Register()
{
//If already logged in no need to show register page again
if(Request.IsAuthenticated)
return Redirec("Dashboard");
return View();
}
編輯:更新了答案以解決已評論的問題
我創建了具有以下內容的部分視圖
<input type="hidden" id="reloader" value="" />
<script type="text/javascript">
if (document.getElementById("reloader").value === "reload")
window.location.reload();
else
document.getElementById("reloader").value = "reload"
</script>
然后,可以在注冊和登錄視圖中使用@Html.Partial('PartailViewName')
包含該內容。
由於使用后退按鈕時會緩存DOM,因此如果用戶使用后退按鈕,則上述腳本將重新加載頁面。
如果與我的第一個答案一起使用,您將獲得想要的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.