我想知道asp.NET MVC和MVP之间的区别,它们是否相同? 下面是我提到的架构图。
(图片网址:http://msdn.microsoft.com/en-us/library/ff647859.aspx)
我从图中看到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是否相似?如果没有什么区别?有人可以指导我。
答案 0 :(得分:7)
实际上MVP是MVC模式的一个子集。
在你的asp.net mvc示例中,控制器不会更新视图,而只是将模型传递给视图,视图会根据模型进行更新。
但是在MVP(通常与Microsoft堆栈中的winforms和webforms一起使用)中,演示者从视图中获取数据,更新模型以及模型更改时,演示者将读取模型并更新视图。
答案 1 :(得分:3)
那个MVC图对我来说很容易让人误解。我认为这是一个更具启发性的架构图:
这是来自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开发团队成员编写的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实施