2013-02-27 61 views
0

我們使用ASP MVC 4構建Web應用程序。 如果當前請求是「測試」請求,我們有一個共享部分,用於存放告訴應用程序其餘部分的邏輯。我們這樣做是爲了使我們的端到端測試不會破壞我們的正常站點活動。從ASP MVC 4訪問MEF部分查看

在控制器上,我們只需獲取ctor中該部件的接口,並且可以訪問它。

問題是如何讓視圖也可以訪問它。 有一次,我們有一個局部視圖,我們把我們的_Layout.cshtml文件添加到谷歌分析代碼中,如果我們正在測試我們不想發出該代碼。

是否有一種乾淨的方式允許剃鬚刀視圖訪問MEF零件?

回答

1

我不知道在視圖中直接進行導入的方法;我通常使用導入屬性,而這些屬性不能在視圖中使用。您可以在另一個課程中完成作文,然後在視圖中爲該課程創建一個參考,但我不知道您可以稱之爲「乾淨」。

如果我瞭解您的具體情況,似乎可以更輕鬆地在返回具有Google Analytics業務的部分視圖的操作中解決此問題。當控制器導入的MEF部件表示請求是「測試」請求時,該操作將返回一個空白視圖。

+0

謝謝。我不把它放在行動中的原因是因爲它應該發生在所有控制器的所有操作中。作爲DRY原則,我不想在每一個行動中重複它。謝謝 – 2013-03-01 05:56:24

+1

在這種情況下,也許一個知道你的MEF部分的自定義視圖引擎會運行良好。 – Matt 2013-03-04 15:42:22

+0

謝謝。有趣的想法 – 2013-03-05 19:47:59