2008-10-31 50 views
5

在ASP.NET webforms中,我們有服務器組件,可以將其封裝到外部組件中並作爲產品發貨。在ASP.NET MVC中,我們沒有服務器組件,那麼外部組件的最佳選擇是什麼?如何爲ASP.NET MVC開發「shippable」組件?

環顧它似乎是唯一可能的選擇是製作一個Html幫手方法,返回一堆html + js操縱事物。如果組件需要一些邏輯,一個http模塊會添加一些新的路由和一個在同一個外部程序集中定義的控制器來處理ajax調用。

否則的RenderPartial只返回一個視圖...但視圖是一個真實的文件,所以很難在外部組件封裝,除非它添加爲資源文件,然後檢索使用路徑提供商,看起來到資源文件而不是磁盤上的真實位置。

還有沒有其他的選擇我不考慮?

THX 廝磨

+0

這個有什麼進展?爲了在MVC頁面中嵌入複雜的功能(包括歷史感知交互性)而不涉及頁面的其餘部分,這是一個合理而常見的願望。我看到的唯一替代方法是要求使用頁面跟蹤每個組件的查詢字符串狀態,這是非常可怕的。 – 2010-10-26 21:28:34

+0

@Jason:使用ajax和查詢字符串更新頁面部分有什麼可怕的地方? – jgauffin 2010-12-21 09:19:34

回答

0

ASP.NET MVC完全支持除了HTML輔助自定義控件和用戶控件。沒有什麼能阻止你開發一個自定義控件(對於一個花哨的網格,比方說),將它封裝在一個組件中,然後運送它。我錯過了這個問題的重點嗎?

1

沒有什麼阻止你開發一個自定義的控件(一個奇特的格子,讓我們說),在裝配封裝它,然後把它運

但這隻會工作的第一渲染:什麼如果我想要網格可排序/可分頁/可編輯等?

2

由於服務器端邏輯與客戶端邏輯完全分離,因此爲Asp.Net MVC製作服務器端和客戶端組件並不是很有用。您可以更好地製作純粹的Html/Javascript組件,並且可以在多種平臺上使用(Ruby on rails,php,python,java),並且有一個教程如何將它們集成到多個平臺上。 您開發的平臺不是asp.net mvc,而是一般的網頁瀏覽器!靈感的一個很好的來源是Ext JS Framework