2011-01-23 93 views
0

對於我的網站我想實現一個橫幅控制,將在網站的左側。 橫幅將存儲在數據庫的html中,並且每個橫幅都會有一個評級。然後使用評分,每個人會有一些事件(百分比)。ASP MVC橫幅旋轉器

  1. 你認爲有一個可行的解決方案把所有這些流程放在一個單獨的dll中嗎?這在mvc架構中甚至是可能的。我寧願做它作爲一個局部視圖,並在一個單獨的dll部分視圖和數據訪問層的一切。你認爲這是一個好的解決方案嗎?

  2. 當你必須實現「用戶控制」(局部視圖)時,你的方法是什麼......你把它放在網站項目或單獨的項目中嗎?

  3. 是否有任何其他方式來實現這一點,而不是使用局部視圖?

感謝,拉杜

回答

2

有,你有─

  1. 做它作爲一個HtmlHelper擴展幾個選擇。可能對於這類事情並不理想,因爲顯示橫幅的管理和關聯的邏輯確實是橫幅組件/部件/部分的關注點。

  2. 作爲局部視圖使用,並使用Html.RenderPartial(object Model)來調用它。現在邏輯處於局部視圖,但也可能有一些應用邏輯不應該真正進入視圖,並且真正屬於模型或控制器。此外,您最終可以傳遞給主視圖的胖視圖模型,也必須爲主視圖中呈現的每個局部視圖提供視圖模型。我認爲在某些情況下,這並不理想,特別是當部分的視圖模型中的數據與主視圖的數據無關時。這給我們帶來了......

  3. 將它作爲一個具有關聯控制器和局部視圖的子動作來執行。邏輯將很好地封裝在控制器中,局部視圖將簡單地渲染出從BannerController傳遞的任何內容。

你當然可以把它放進一個單獨的程序,並將它設置爲Portable area。這樣,您可以將部分視圖嵌入到程序集中,並重新使用該小部件,只需將程序集放入bin文件夾並在主應用程序項目中引用它即可(您可能還需要設置一些配置) 。

我是否會親自這樣做,取決於組件的重用;說實話,我可能會在主應用程序的某個區域內設置它,然後,如果我發現需要重新使用它,請將其移出到便攜區域。

我也一般喜歡將數據訪問邏輯保存在單獨的程序集中,並使用數據訪問控制器。