2012-04-08 76 views
0

我是MVP的新手。MVP的MVC教程

我可以使用为asp.net MVC创建的教程来学习MVP模式基础和基础知识吗? 或差异太大?

+0

随着源代码的练习,单元测试还包括解释其好处 - http://www.advertisingmarket.co.uk/MVPPattern – 2015-12-05 00:14:34

回答

1

这两种模式是非常不同的。 MVP模式可以与经典的WebForms一起使用,而ASP.NET MVC已经在框架中集成了大量MVC模式的部分。关注的分离已经存在。如果你想使用MVP和经典的WebForms,你会有更多的工作,因为这个模式在框架中是不存在的。

+0

thanx,我读过关于MVP的概念和定义。但我有问题如何将用户重定向到另一个页面或至少一层?在哪里实施验证?实际上如何实现MVP到真正的项目。根据我的搜索,没有足够好的MVP教程 – 2012-04-08 09:25:14

+0

我知道这是旧的,但只是为了完成。您的页面(视图)正在执行重定向,因为它具有对HttpContext的访问权限。您的Presenter不应该直接访问HttpContext。你的页面(视图)来自一个界面,即:可以有一个Redirect方法将URI作为参数的IView。您的页面(查看)然后实现重定向。因此,当Presenter调用“MyView.Redirect(MyUri)”时,它将执行重定向的页面(视图),并且演示者仅将位置发送给它。这也使得测试演示者变得更容易,因为你可以嘲笑自己的视图,而不依赖于httpContext。 – Nope 2012-04-20 18:30:48

+0

为了澄清,您的Presenter在执行时有权访问HttpContext,但是当您针对演示者编写单元测试时,您将得到'Object not initialized'错误,因为单元测试框架不会初始化httpcontext。由于HttpContext是一个不能从任何接口继承的密封类,所以你不能模拟/伪造它。您最好确保您的httpContext只能从视图(您的页面)本身访问,并通过IView界面向主持人提供对功能的访问权限等。 – Nope 2012-04-20 18:32:58

1

MVC适合简单的服务器端脚本。在MVC开发人员中,总是尽量保持控制器非常精简。主要是控制器只是选择适当的模型并反思视图。但在今天的网络应用程序中,View部分已经发生了根本性的变化,并且变得足够复杂,足以产生一个大而笨重的控制器。所以现在我们需要一个新的地方来放置用户界面的复杂控制逻辑。这里的PMVP进来,这是主持人。因此演示者负责控制特定用户界面组件的逻辑。不用担心控制器仍然在这里,命名为应用控制器。最终负责切换相对较大的应用程序组件。所以MVP也可以说是MVPC(!!)。顺便说一句,这是我理解MVP的方式,显然没有任何基本规则。但是Google有一些关于MVP的非常酷的文档。