2011-09-07 50 views
2

我有一個輸出Html鏈接的MySmartAnchor方法。根據我傳遞給MySmartAnchor的對象,它將設置特定的CSS類和工具提示。ASP.NET MVC - 爲控制器中的視圖生成html

我覺得這是太多的邏輯放在一個視圖。我不想將此方法添加到HtmlHelper方法,因爲它解決了特定的情況。所以我想把這個邏輯放在一個控制器裏面,然後從一個視圖中調用它。@ Model.MySmartAnchor(someObject)

我在正確的軌道上嗎?這應該在View中完成,放在輔助方法還是控制器中?我也想過有一個部分,但在我看來,這是一個鏈接的矯枉過正。

+0

也許一個解決方案將是範圍HTML幫助器方法。通過這種方式,我可以編寫一個特定於此場景的html幫助器方法,並將其範圍擴展到此頁面。 –

回答

4

似乎很適合創建razor helper。如果這只是單個視圖特定的幫助器,則應該將其創建到使用它的相同視圖中。否則,請在App_Code中創建幫助程序,以便在多個視圖中使用它。 ScottGu引用的文章也涵蓋了這一點。

+0

我正要建議一個HtmlHelper,直到我看到你的答案。不知道剃刀助手可以在應用程序級別使用。謝謝! – OverForkOver

+0

@OverForkOver歡迎您! :) – archil

+0

看起來像範圍幫手是答案。我很困惑,因爲我認爲如果我創建一個輔助方法,它將在每個視圖中都可用。我能夠將helper方法放在它自己的類中,並將其範圍放在它自己的命名空間中,該命名空間是特定於我正在使用的View中的。 –