2011-01-21 123 views
0

我有一個需要調用保存方法,該方法在用戶離開頁面時會在會話中保留模型/對象。點擊超級鏈接後ASP.Net保存

該頁面有各種鏈接,不會引發回發,但只是執行重定向。是否有任何ASP.Net頁面生命週期方法可以掛鉤進行保存而不需要回發?

+2

ASP.NET頁面生命週期存在於服務器上,根據定義需要回發甚至開始。只需使用LinkBut​​ton控件並從服務器端重定向即可。 – Greg 2011-01-21 12:46:18

+0

我有點認爲,認爲可能有一些javascript方法隱藏在某個地方,這將有所幫助。 – Burt 2011-01-24 17:26:20

回答

1

一種解決方案可以是執行一個異步POST請求(不等待響應)時被卸載的窗口:

使用jQuery一個例子:

$(window).unload(function() { 
    $.post(location.href, $(document.forms[0]).serialize()); 
}); 

雖然您可能需要使用Chrome瀏覽器略有不同的方法(上jQuery forums找到):

它看起來像得到 Ajax請求去t時的唯一途徑在谷歌瀏覽器 中使用非正常事件 。 Chrome顯然 沒有足夠長的時間使用onunload發送 Ajax請求。它確實 然而等待警報...

1

那麼這取決於。

如果您需要在人員離開頁面時保存值,那麼這很難。

你可以做什麼,是包裝在一些jQuery的,是說,像所有的鏈接:

  • 問題一個Ajax調用,以AjaxSave.aspx,那麼它完成,然後window.location的到鏈接href屬性。

,但如果這個人點擊你的鏈接,而不是如果人只是關閉瀏覽器或東西,只會工作。

你也可以選擇路線來保存所有的東西,所以每次發佈帖子時,你都會把東西放在會話中。但是這意味着從最後一次回傳到從頁面導航離開的值都會丟失 - 不知道這是否是一個問題。

最後一件事就是像StackOverflow那樣做。如果您正在編輯內容,當您離開該頁面時會顯示警告,然後您必須點擊好,才能離開該網站。