2014-03-12 17 views
0

(對於這個問題的模糊性抱歉,這是我的一些泥濘的想法的結果。)ObjectDataSource如何與傳統的MVC模式相關聯?

我正在設計一個MSSQL DB的小網站。我剛剛偶然發現了ObjectDataSource類。我想我理解它,但我不明白它與傳統的MVC設計模式有何關係。

根據微軟的說法,該類被設計爲位於UI(視圖)和數據庫之間,因此,我認爲它是一個Controller。它確實將UI操作映射到行爲,但它也包含寫入數據庫的代碼,這不是我期望控制器執行的操作(但我可能是錯誤的)。

在我看來,它既是控制器又是模型,但我感覺我沒有看到這裏的東西。

這是很多的話說我很困惑。我會非常感謝任何能夠幫助我瞭解我在這裏失蹤的人的任何人。

回答

0

ObjectDataSource的目的是在視圖和一些檢索數據的代碼之間,而不是直接訪問數據庫。它不是一個控制器,但會調用你的代碼來獲取數據。更好的描述來自MVP場景,其中MVP中的視圖可以自行管理,而ObjectDataSource是使管理更容易的控件。但是,根據框架設置的不同,ObjectDataSource可能會使得使用傳統的MVP或MVC設計實現更加困難。

我個人不喜歡這個控件;我從不使用它,因爲我寧願編寫它,以便更容易查看綁定發生的方式,以及綁定發生的時間。我個人的意見。

0

如果這就是您的意思是「傳統的MVC設計模式」,那麼在asp.net MVC中不會使用ObjectDataSource。它主要用於WebForms開發。

它通常被放到一個webform組件上並通過用戶界面進行配置,儘管它不一定是。它提供了一種抽象,允許其他WebForms控件以與這些控件在數據庫中的工作方式相似的方式與對象模型進行交互。該對象模型可能最終來自數據庫,但它允許您在兩者之間插入自己的數據庫方法。

WebForms不適合傳統的MVC模式,因爲一些技術問題使得以這種方式使用它變得複雜。用於WebForms的清潔模式是MVP(模型視圖展示器)模式。

相關問題