了解模型视图和控制器之间的关系

Understanding relations between model view and controller

我阅读了很多关于 MVC 的资料,每一个的作用都或多或少很清楚。我还不明白的是它们之间的关系。我的意思是,我知道这些关系

但它们是如何实施的? MVC 框架中会发生什么?

我也有几个问题:

MVC 的最基本解释是您拥有 3 层中的每一层。

型号

  • 这包含您的数据。即数据库或一组 classes.

查看

  • 这会向用户显示数据,即您的 HTML 页面。
  • 包含用户交互控件。

控制器

  • 所有对数据的访问都应该经过这一层。即从您的数据源(模型)加载数据并将数据保存到您的数据源。
  • 在保存或加载之前执行任何数据操作。

这在理论上创建了关注点分离,允许您在任何一层中更改任何内容,而另一层不知情或不关心,从而使代码更易于维护和阅读。

在实践中,这可能会变得更加复杂,具体取决于您希望如何访问数据和显示数据,尽管基本原则仍然适用,偶尔意味着 MVC 模式的每个部分都可以由更小的部分组成。

就实施而言,一个很好的例子是 ASP.Net MVC http://www.asp.net/mvc。以下可能是使用 C# 通过 MVC 显示一些数据的简单实现。

模型(C#class)

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)

这将输出到网页上

全名:人 1

语法错误请见谅,未经测试

更详细post:http://www.tutorialspoint.com/design_pattern/mvc_pattern.htm