2013-02-12 99 views
2

我已經閱讀了大多數Q & A的SO,他們似乎都使用TempData作爲重定向到「使用任何形式保存/感謝」消息的動作的問題的答案。避免TempData MVC

我知道您可以使用Cookie和會話來執行此操作。問題是我想避免會話,因此TempData只是使用會話。

所以,問題 - 如何避免重複的插入,併發送各種消息到其他操作而不依賴於Session/Cookies/Querystrings,並添加到混合隱藏字段。

感謝

回答

0

1)只有這樣,才能避免重複將實際插入前先查詢數據庫。

2)爲避免會話等,我只能想到其他方式將數據保存到數據庫,並有一些用戶ID連接到它。

3)我會推薦一個javascript(mvvm框架將是一個不錯的選擇)與ajax回發的解決方案。這不僅會阻止用戶進行完整頁面回發,而且還可以讓您在同一時間感受到快速且快速響應的應用程序。您可以更直接地向用戶發送消息,並指出錯誤發生的位置等等。

+0

Joakim謝謝你的理解,我明白你在用javascript/ajax做什麼,但我想避免這種情況,用戶關掉它。就插入方面而言,我可以檢查,但更新方面會發生什麼情況。是否值得重複更新一次又一次的開銷,我相信必須有另一種解決方案。爲了防止任何人遇到過,我很高興知道,因爲我已經閱讀過文章,表示如果您使用Session/Tempdata或任何基於會話的商店進行簡單任務,那麼您的架構技能需要工作,因爲總會有替代方案。 – AliK 2013-02-12 19:09:17

+0

在這種情況下你應該問自己的問題是「什麼是簡單的任務?」什麼是你的主機更多的稅收?點擊數據庫?還是實際在完整回傳中傳輸的數據量?並考慮除了您正在關注的主要操作之外,該頁面是否還有其他查詢?這就是爲什麼將用戶轉移到一個頁面以表明該操作已被執行而不是由於許多不同原因立即檢查而成爲更常見的做法。 另外JavaScript應該是一個擴展,如果用戶有它禁用該頁面應降級到發佈 – Joakim 2013-02-13 00:52:47

+0

再次感謝。我明白了,我想你說,使用JavaScript並不是一個壞主意ajax保存等,我想簡單的消息傳遞TempData也將工作。我想知道的主要原因是Sessions已被禁用/未被我的應用程序使用,我只有幾個問題,並一直試圖找到解決辦法。 1)作爲上面討論的「感謝/保存」的問題,另一個是保存每個用戶數據的情況下沒有會話,我試圖使用緩存?如果會話關閉並且負載平衡的應用程序會不會將Tempdata禁用? – AliK 2013-02-13 04:14:34