首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何集成.Net模型视图呈现器模式和标记为[WebMethod]的静态页面方法?

如何集成.Net模型视图呈现器模式和标记为[WebMethod]的静态页面方法?
EN

Stack Overflow用户
提问于 2008-09-26 18:22:40
回答 2查看 2.5K关注 0票数 5

在asp.net应用程序中,我想结合使用Webclient Software Factory (WCSF)及其关联的Model View Presenter模式和Page方法,即使用WebMethod属性标记的.aspx视图上的静态方法。

然而,aspx页面上的静态方法似乎破坏了Model View Presenter模式,因为页面上需要一个实例方法来拥有View对话所需的Presenter和Controller的上下文。

如何在WCSF中扩展asp.net的MVP模式来支持页面上的WebMethods,也就是视图?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-09-27 01:51:27

最近,我在做一个MVP模式化项目时遇到了类似的问题,我想要大量的AJAX集成。您最好拥有符合您所调用的MVP模式的web服务。

请记住,PageMethod只不过是当前页面中的一项web服务。它不能访问任何页面级对象,因此将它放在那里的好处微乎其微。我实际上认为它们是不利的,它们给了开发人员(不熟悉这个概念的开发人员)可以与页面级对象交互的想法。

硬币的另一面是你的PageMethod在做什么,如果你的页面方法不需要与模型交互(比如,它处理复杂的算术计算,在C#/VB.NET中比JS更快),那么这个操作实际上是一个UI级的操作,如果你要把应用程序变成一个WinForm (或其他东西),那么很可能是无关紧要的。

请记住,在UI级别与数据进行所有交互都是特定于该UI实现的。如果您要为展示者编写不同的UI,那么您可能会有不同的UI级别的数据交互。

票数 4
EN

Stack Overflow用户

发布于 2008-09-27 01:12:58

我认为,通过使用ASP.Net AJAX Web服务而不是静态页面方法,您可以接近您正在寻找的内容。web服务的优点是不是静态的,根据视图的实现方式(我不熟悉WCSF模式的细节),您可能会使web服务成为您的“视图”layer..or,至少是相当接近的。

在我正在做的一个项目中,我也做过类似的事情。我最终需要创建一个仅限数据的瘦类,它被web服务序列化为JSON,以便将数据从模型传递到“视图”,但web服务本质上具有相同的方法,这些方法将作为视图上的事件公开。

我喜欢这种方法的一个原因是,所有的部分,包括web服务,都是可测试的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/141104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档