2015-04-01 100 views
0

我經歷了大量有關MVC的讀物,以及它們各自所做的或多或少都很清楚。我還沒有理解的是它們之間的關係。我的意思是,我知道這些關係瞭解模型視圖和控制器之間的關係

mvc relationships

,但他們是如何實現的? MVC框架會發生什麼?

我也有幾個問題:

  • ,我讀了a view can't be coupled with the controller,換句話說,它不能有內部控制器對象,但隨後它是如何使用正確的控制器,如果一個觀點是應該觸發其中的東西?

  • 如果模型的唯一工作是表示數據,模型如何更新視圖?

  • 控制器或模型內部的業務邏輯?我讀過沖突的觀點

+0

你必須至少實現一些東西。如果數據只是數據,數據不會做任何事情。您必須實現函數以從存儲位置檢索數據。 – rigon 2015-04-01 15:23:14

回答

1

最基本的MVC的分析將是你有3個層次中的每一個。

型號

  • 這包含您的數據。即數據庫或一組類。

查看

  • 這顯示數據,用戶即HTML頁面。
  • 包含用於用戶交互的控件。

控制器

  • 數據的所有訪問應該通過這一層。即從您的數據源(模型)加載數據並將數據保存到數據源。
  • 保存或加載前執行任何數據操作。

這創建了一個理論上分離的問題,允許您在任何層中更改任何層,而無需其他層知道或關心更易維護和可讀的代碼。

實際上,根據您希望如何訪問數據並顯示它,儘管基本原理仍然適用,但偶爾也意味着MVC模式的每個部分都可能由較小的部分組成。

在實施方面,一個很好的例子是ASP.Net MVC http://www.asp.net/mvc。以下可能是使用C#通過MVC顯示一些數據的簡單實現。

模型(C#類)

public class Person{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

控制器

public ActionResult Index(){ 
    return View(new Person() { FirstName = "Person", LastName = "1" }); 
} 

視圖(Index.cshtml)

@model Person 

Full name: @Html.Raw(Model.FirstName + " " + Model.LastName) 

這をULD輸出到網頁

全名:人1

請原諒我的語法錯誤,而不是測試。

更詳細的文章:http://www.tutorialspoint.com/design_pattern/mvc_pattern.htm

相關問題