asp.net MVC和MVP之间的区别?他们俩都一样吗?

时间:2013-11-15 08:50:06

标签: asp.net-mvc mvp

我想知道asp.NET MVC和MVP之间的区别,它们是否相同? 下面是我提到的架构图。

(图片网址:http://msdn.microsoft.com/en-us/library/ff647859.aspx

MVC vs MVP

我从图中看到MVC和MVP之间的主要区别是,在MVC中模型更新视图,在MVP中,Presenter更新视图。

但这是我的困惑.Below是一个asp.net MVC代码示例。

public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }

    }

这里Controller返回/更新视图,所以现在根据图表它是MVP

asp.net mvc和MVP是否相似?如果没有什么区别?有人可以指导我。

4 个答案:

答案 0 :(得分:7)

实际上MVP是MVC模式的一个子集。

在你的asp.net mvc示例中,控制器不会更新视图,而只是将模型传递给视图,视图会根据模型进行更新。

但是在MVP(通常与Microsoft堆栈中的winforms和webforms一起使用)中,演示者从视图中获取数据,更新模型以及模型更改时,演示者将读取模型并更新视图。

答案 1 :(得分:3)

那个MVC图对我来说很容易让人误解。我认为这是一个更具启发性的架构图:

enter image description here

这是来自PHP网站,但在这里你可以清楚地看到视图和控制器之间的关系。

MVC和MVP之间的差异很小,this question(如上所述)澄清了这些差异。


MSDN page也清楚地说

  

此内容已过时且不再维护。它是   为仍在使用这些内容的个人提供礼貌   技术....

我认为这个资源早于Asp.Net MVC。

这些文章本身用于调用Composite UI Application Block并且是从2005开始的。我会去http://www.asp.net/mvc/获取更新的MVC信息。

答案 2 :(得分:0)

不,他们不一样。它们是用于用户交互的两种不同范例(设计模式)。基于这些范例,ASP.NET团队开发了两种不同的框架来编写Web应用程序。第一个是基于事件的表单编程的 ASP.NET Web Forms 。第二个是 ASP.NET MVC ,它基于使用模型视图和控制器(MVC)。

我想你可以开始阅读由一个ASP.NET开发团队成员编写的here

关于具体问题。我认为Controller使用Model更新View来执行此操作。模型没有做任何事情。或者这是我理解它的方式,无论如何......

希望我帮忙!

答案 3 :(得分:0)

尝试在不连接任何技术的情况下理解MVC和MVP概念。

ASP.NET MVC控制器中的Action方法返回ActionResult with View方法不会破坏任何模式。它只是说控制器功能已经完成,让我们用Razor / ASP.NETsyntaх从标记渲染视图。

在ASP.NET世界中 - ASP.NET MVC是MVC模式的重要组成部分。被遗忘的Web Client Software factory是MVP实施