2011-04-11 37 views
2

Helper可以與Model進行交互嗎?Helper會與Model進行交互可以嗎?

例如,我有幫助生成自定義<select>選擇類別。 現在我正在爲Controller中的這個<select>提取數據(使用Model的couse),然後將其分配給View。

但還有另一種方法。只需將模型交互添加到Helper中即可。它將使控制器的代碼更加簡單,並將幫助我們避免重複代碼。

任何想法?

回答

0

助手通常用來「幫助」你做事。我認爲如果您在控制器或模型中或兩者中使用它們並不重要。

1

據我所見,從任何地方訪問模型數據都被認爲是正確的,但修改數據應該只在控制器(對動作起作用)中完成。

1

如果您使用此幫助程序生成HTML控件,那麼您應該將輔助程序保留在模型之外。你所有的模型都應該關注數據本身 - 而不是它是如何格式化的或者它是如何完成的。

這將是更好的組織模式注入助手:此遵循依賴注入模式,將讓您執行單元測試。

1

我不得不說「NO」 =),最好是把它放在控制器,因爲如果有模型上的問題,你就必須從視圖中進行管理..或者會發生什麼,如果以後你想要添加一些限制,例如:只顯示選擇,如果用戶登錄或只顯示幾個選項等。

我會在模型上創建一個方法來檢索元素列表。標識調用該方法從控制器來管理響應(未經授權,未找到,等),並選擇/修改相應的視圖中顯示的信息..

但是這只是我=)

祝您好運!

相關問題