2013-06-02 171 views
0

我想提高我的知識,因爲我注意到好幾次,我說服我開發時沒有使用正確的實踐,例如在ASP.NET MVC中導出csv,我創建在控制器的4個私有方法中,這些方法做必要的並返回數據。 我在1方法中合併了4種方法,並在使用點擊導出CSV時調用父方法。 這4種方法用於兩個地方不同。所以我可以將代碼分解爲一個代碼或者可能使用委託。當然。ASP.NET MVC和監聽器/事件

所以我遵循 http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx教程有關事件 和 http://msdn.microsoft.com/en-us/library/aa288459(v=vs.71).aspx關於委託

而現在,我認爲,它不可能在Web上下文來創建一個監聽器管理器事件。 我的假設是Web沒有連接env,所以每次都丟失了上下文。 您是否知道使用webContext管理event + listener的技術方法?

如果你有任何關於模式的文檔/鏈接來實現它將是一個閱讀的豐富。

回答

0

通過使用會話Id來引用同一會話,您可以使您的API(控制器操作/ WEB API)'上下文/會話知曉''。這樣你的服務器端邏輯就能夠爲你「記憶」事物,從而模擬一個上下文的概念。

當您從服務器集羣中的許多服務器中的一臺服務器(除非實現專用的會話共享機制)提供請求的伸縮性角度來看待此方法時,這種方法就不受歡迎了。

最好的辦法是執行這將封裝所有你原子和重複的邏輯,並獲得控制器動作/網絡API來調用服務方法

希望一個業務層時,這有助於

+0

謝謝您的回答,它可以是使用會話ID的好方法。沒有其他方法可以做到。有效地在業務層,我可以包裝很多東西,我需要用這種條件來考慮我的應用程序。 – user2416437