为什么需要在MVC中使用ViewModels?

时间:2014-10-11 03:14:38

标签: android model-view-controller view

关于MVC的两个问题: 1).net MVC和Android MVC有什么区别? 2)为什么需要在MVC中使用ViewModels?

如果有人能回答这些问题,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

reference from this

<强>模型 - 视图 - 控制器

在MVC中,Controller负责确定显示哪个View以响应任何操作,包括何时加载应用程序。这与MVP不同,其中操作通过View路由到Presenter。在MVC中,View中的每个操作都与对Controller的调用以及操作相关联。在网络中,每个动作都涉及对URL的调用,在URL的另一侧有一个Controller响应。控制器完成处理后,将返回正确的视图。在整个应用程序的生命周期中,序列以这种方式继续:

Action in the View
    -> Call to Controller
    -> Controller Logic
    -> Controller returns the View.

MVC的另一个重要区别是View不直接绑定到Model。视图简单地呈现,并且完全是无状态的。在MVC的实现中,View通常不会在后面的代码中有任何逻辑。这与MVP相反,在MVP中绝对必要,好像View不会委托给Presenter,它永远不会被调用。

答案 1 :(得分:0)

MVC是一个概念,而不是一个可靠的编程框架。您可以在任何平台上实现自己的MVC。

模型:呈现内容

查看:如何呈现

控制器:事件,用户输入

问题1:Android MVC和.Net MVC

Android MVC:

在Android中你没有MVC,但你有以下内容:

  1. 您可以通过分辨率,硬件等在各种XML文件中定义用户界面。
  2. 您可以按区域设置等在各种XML文件中定义资源。
  3. 您扩展了像ListActivity,TabActivity这样的分支,并使用了inflaters的XML文件。
  4. 您可以根据业务逻辑创建任意数量的类。
  5. 很多Utils已经为你编写了 - DatabaseUtils,Html。
  6. 更多参考:MVC pattern on Android

    .net MVC:

    ASP.Net MVC是一个开源Web应用程序框架,它实现了模型 - 视图 - 控制器(MVC)模式。

    更多参考:http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework

    问题2:为什么需要在MVC中使用ViewModel?

    ViewModel帮助我们以比模型或ViewBag / ViewData对象等复杂对象更灵活的方式组织和管理强类型视图中的数据。它允许您将一个或多个数据模型或源中的多个实体整形为一个对象,针对视图的消费和渲染进行了优化。

    1. ViewModel包含视图中表示的字段(适用于LabelFor,EditorFor,DisplayFor帮助程序)
    2. ViewModel可以使用数据注释或IDataErrorInfo具有特定的验证规则。
    3. ViewModel可以包含来自不同数据模型或数据源的多个实体或对象。
    4. 更多参考:http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applications