模型在MVC中的用途是什么?

时间:2015-05-22 16:07:13

标签: c# asp.net-mvc model-view-controller

我已经阅读了很多关于MVC的内容,我甚至在.Net中编写了一个非常复杂的数据驱动的MVC移动网络应用程序,但是(因为我还在学习),我没有看到该放在模型中的内容。该应用程序有十几个视图,一个主控制器,以及用于SQL交互和自定义数据类型的帮助程序文件。我能够在不使用模型的情况下将数据绑定得很好,并且自定义数据类型按预期工作。请善待,我错过了什么?该模型的目的是什么,为什么我必须被迫使用它(除了它是一个标准)?

4 个答案:

答案 0 :(得分:4)

MVC主要是用户界面设计模式。模型是“其他所有内容”的容器,与UI无关的所有内容。

一般情况下,您可以从View中将尽可能多的逻辑推送到Controller或ViewModel中,并通过推送尽可能多的逻辑来尽可能减少控制器的模型。因此,对“模型中的内容”的简短回答是“所有未进入View,ViewModel或Controller的内容。”

具体做法是:

  1. 域对象,例如customer
  2. 服务
  3. 商业逻辑
  4. 服务器端验证
  5. 对象关系映射器
  6. 数据库
  7. 存储库

答案 1 :(得分:1)

简单地说 - “MVC模型包含除纯视图和控制器逻辑之外的所有应用程序逻辑(业务逻辑,验证逻辑和数据访问逻辑)。

使用MVC,模型可以保存和操作应用程序数据。“

如果您同时忽略模型,则不会遵循标准MVC模式。但是,正如您所发现的那样 - 您不需要使用它。您可以直接从控制器调用数据库并返回您在DAL(数据访问层)中定义的类型 - 您在设计中间接使用它作为模型。这不是一个好习惯。

您应该被迫遵循这种模式,以便在应用程序的体系结构中实现“分离关注”。您可以在线找到有关此主题的大量信息,因为它与MVC模式有关。

Model Definition

答案 2 :(得分:0)

View是一个模板,可以通过将包含数据的模型传递给它来填充。

它允许根据模型包含的内容自定义视图。

您还如何在观看中填充数据?

也许jQuery得到了?

答案 3 :(得分:0)

在您的情况下,“SQL交互和自定义数据类型的帮助程序文件”是您的模型。该模型是对真实数据源的抽象,例如数据库。

对于小型项目,你所做的工作很好。随着项目变得越来越大,将视图直接绑定到数据库/模型而不是完全抽象模型会导致越来越多的问题。