如何集成 ASP .Net Model View Presenter (MVP) 模式和标记为 [WebMethod] 的静态页面方法?

Joh*_*ant 5 asp.net mvp json wcsf

在 asp.net 应用程序中,我想将 Webclient 软件工厂 (WCSF) 及其关联的模型视图演示者模式 (MVP) 的使用与页面方法相结合,即 .aspx 视图上标有[WebMethod] 属性。

然而,aspx 页面上的静态方法似乎打破了模型视图展示器模式,因为页面上需要一个实例方法来拥有与视图对话所需的展示器和控制器的上下文。

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

Aar*_*ell 4

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

请记住,PageMethod 只不过是当前页面中的一个 Web 服务。它无法访问任何页面级对象,因此拥有它的优势微乎其微。我实际上认为它们是不利的,它们给开发人员(不熟悉这个概念的人)提供了可以与页面级对象交互的想法。

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

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