2009-06-18 24 views
0

我必須構建一個xml輸出,該輸出表示爲放置在視圖中的彈性圖表構建的數據。 我有幾種選擇:ASP.Net mvc爲圖表構建xml數據饋送

  1. 有控制器創建XML(使用從DB數據),並返回到實際執行任何操作,因爲萬事俱備的視圖。

  2. 將視圖從數據庫強制類型化爲數據模型,並在視圖中聲明性地呈現xml。

  3. 創建一個Html擴展方法,該方法將包含創建xml的邏輯並在視圖上使用它。

從分離的角度來看,最好的選擇是什麼?在未來我不會指望xml結構會有很多變化,可能偶爾會出現。 我傾向於選擇選項1,因爲它更容易測試,我對控制器準備xml數據感覺更加舒適。

回答

0

我會選擇編號1,因爲我覺得它最適合MVC模式。根據某些數據模型創建XML文件不是View的責任。這是商業邏輯,因此在控制器中更好。

同樣重要的是,如果你有你的控制器創建xml文件,你可以爲它創建一個單元測試,聲明輸出xml是有效的,包含所有必需的節點等等。

+0

我傾向於在此同意你的看法。將邏輯作爲控制器的一部分編寫起來很簡單,可測試,而且通常我覺得它符合控制器的概念。 謝謝。 – Ami 2009-06-18 08:47:55

0

選項2是最好的。你的模型有數據,你的控制器要求它提供給視圖。該視圖只有一個標籤來說明它的位置。對我而言,這是關心的分離。

看到Razzie的回答,我也喜歡1,我想模型必須提供一些方法將一些實體類(您的圖表結果)序列化到xml中,以便您的強類型視圖能夠利用它。

無論如何,我希望答案有幫助,基本上我不認爲3很好。 :-)

0

我會說這取決於你更舒適的選擇1和2是可行的。人們會說選項1是好的,因爲您可以使用XmlWriter來確保返回有效的xml,並且人們會說選項2是有效的,因爲mvc完全控制視圖中呈現的內容(可以是xml)。

但是,我個人會對選項1進行變更,以保持獨立於控制器的功能,並將其作爲獨立的實用程序方法來接收數據並輸出xml。這將更容易測試,但如果將來需要,可以從代碼中的其他地方調用。除此之外,它還可以保持控制器中的代碼更清潔。

我同意馬克我不認爲選項3是一個好方法。

這只是我的想法,希望這有助於:-)