2011-04-19 61 views
1

從動作方法將上下文傳遞給自定義業務/輔助類的最佳方式是什麼?我創建的幫助程序/業務類將需要諸如當前登錄的用戶,UrlHelper類的實例(以生成URL)以及任何其他與ASP.NET MVC基礎結構相關的數據等信息。ASP.NET MVC:將上下文傳遞給自定義類

我想通過一個控制器的實例。這是可取的嗎?最佳做法是什麼?

回答

5

我創建的幫助器/業務類將需要諸如當前登錄的用戶之類的信息。

不太可能。恕我直言,這將足以用戶名=> User.Identity.Name,它可以作爲字符串參數傳遞到此業務層。

一個UrlHelper類的實例(生成URL)

可能性不大。生成網址不是業務層的責任。直接從擁有Url屬性的控制器傳遞網址,以便您可以隨意生成網址(再次作爲字符串參數)。

結論:將您的業務邏輯從您的基礎架構中分離出來。基本上,如果你打電話給某個業務邏輯,URL助手的唯一概念很難說。一旦你跨越了網絡層的邊界,就沒有更多的網址助手。

+0

我喜歡你的答案。如果我的類是一個輔助類,它主要包含與包含業務邏輯的Web服務通信的應用程序/ UI邏輯。那麼,輔助類是否可以與ASP.NET MVC的基礎結構結合起來呢? – burnt1ce 2011-04-20 14:31:50

+0

@ burnt1ce,是的,如果它是一個輔助類(HtmlHelper,UrlHelper,...),那麼與ASP.NET MVC基礎結構耦合並將所需信息傳遞給業務層是完全正確的。 – 2011-04-20 14:35:37

+0

感謝您的快速回復。我可以對視圖模型做同樣的事嗎?對於我的一些視圖模型,我想將控制器上下文和業務實體傳遞給視圖模型的構造函數。 – burnt1ce 2011-04-20 14:47:24

1

減少業務助手層中已有的耦合傳遞值類型或參數/ dto類。

不要傳遞任何與Web/UI層有關的東西。

相關問題