2017-02-14 182 views
2

從我的客戶詳細信息頁面我有一個按鈕來編輯客戶端記錄重定向到編輯頁面。我在編輯頁面上有一個「返回客戶端詳細信息」鏈接,我想將用戶重定向到以前的客戶端詳細信息頁面。返回上一頁ASP.Net核心MVC

<a asp-controller="Client" asp-action="Detail" asp-route-id="@Model.ClientID">Return to client detail</a> 

目前這個工作正常,但由於需要重新加載它從頭詳細信息頁額外的時間(即重新運行所有不同的數據庫查詢)。由於用戶實際上只是取消了編輯而沒有對客戶端狀態進行任何更改,我希望將用戶返回到先前的詳細信息頁面,而無需再次通過控制器操作。

本質上,我想模擬瀏覽器後退按鈕(以提高響應能力),但我不知道如何實現這一點,或者這是否是一個很好的做法。一些指導將不勝感激。

感謝

+1

鏈接執行javascript'history.go(-1)'。這將使瀏覽器退出歷史。 –

+0

那麼再次運行查詢會出現什麼問題? – trailmax

回答

3

您可以使用

<a href='javascript:history.go(-1)'>Return to client detail</a> 

或的onclick

<a href="##" onClick="history.go(-1); return false;"> Return to client detail</a> 
0

它應該是這樣的

<input type="button" onclick= "history.go(-1)" value="Return to client detail" /> 
0

我認爲你需要擺脫的穿越的想法控制器。如果您需要使用有關href的asp網絡核心代碼進行最快速的瀏覽,您可以試試這個。

<a asp-area="" onclick="history.go(-1);">Return to client detail</a> 
3

你知道嗎?我討厭JS,所以我會在後端寫回答。 HTTP referer是一個HTTP標頭字段,用於標識鏈接到請求的資源的網頁的地址。所以,簡單地讀取並通過查看(永遠記住關於XSS和驗證,用戶可以伊斯利spoof HTTP請求)

在動作控制器

if(Request.Headers["Referer"] != null) 
{ 
    ViewData["Reffer"] = Request.Headers["Referer"].ToString(); 
} 

鑑於(剃刀)上點擊

@if(!string.IsNullOrWhiteSpace(ViewData["Reffer"])) 
{ 
    <a href="@ViewData["Reffer"]">Return to client detail</a> 
} 
+0

我試過這個,雖然它全部鉤在一起確定它並沒有解決問題,因爲當點擊超鏈接時,相應的控制器動作被停止調用 – OjM