2011-06-30 45 views
1

我是ASP.NET和MVC的新手,我只想問一下MVC中的業務邏輯層以及服務層和數據訪問層?ASP.NET MVC中的圖層

我只是想知道MVC中的哪些類是圖層?像控制器或模型類一樣?

請指教。

非常感謝。

回答

3

控制器收到一個HTTP請求時,它調用服務層,其又在命令的調用數據訪問層抓取或操縱一些域對象,然後將其轉換成一個視圖模型和一些方法傳遞給查看。域模型和實際視圖模型之間的轉換可以在單獨的映射層或控制器中完成(儘管分離它是首選,因爲它避免了混淆控制器)。

所以就圖層而言,您有由控制器,視圖模型和視圖組成的UI層。然後,您可以擁有一個定義了所有域對象的業務模型層,負責根據特定數據源對這些域對象進行檢查的數據訪問層,以及定義域對象上業務操作的服務層。

+0

我發現的一個常見誤解是,人們認爲他們需要將所有東西都放到M,V或C中。正如Darin指出的那樣,控制器和控制器之間有一點(通常)模型/視圖。 –

1

MVC中的M不代表ViewModel,而是代表用於將信息導入控制器(適應它並將其放入視圖中)的所有內容。換句話說,M就是控制器使用的數據源。它可以是一個web服務,一個存儲庫或其他任何東西。

MVC並不真正關心你的圖層。

職責:

  • L:用於提供數據給控制器
  • C:適應從M個接收到的數據,並把它放入圖
  • 五:本作的所述數據用戶。

試着履行這些責任。不要將邏輯添加到您的視圖中。不要將業務邏輯添加到控制器中。保持一切美好和分離。它使擴展和維護應用程序變得更容易。

ASP.NET MVC

在ASP.NET MVC我們有用於從視圖中除去邏輯視圖模型。如果需要爲未指定的屬性顯示消息,如「n/a」,請在視圖模型中而不是在視圖中執行。

HtmlHelpers的創建原因完全相同:從視圖中刪除邏輯。