繁体   English   中英

ASP.NET MVP - 利用用户控件

[英]ASP.NET MVP - Utilizing User Controls

我正在编写我的第一个应用程序与ASP.NET MVP(尝试监督控制器)和单元测试(迟到总比没有好!),我遇到了一个两难的境地。 我写了3个用户控件,所有测试和界面,主持人。 现在我来到一个采用这三个用户控件的页面,遇到了以下问题:

用户控件1是DateSelector,它是一个带有其他几个按钮/列表的Calendar控件。 没什么真正令人兴奋的

用户控件2是DailyList。 猜猜它是什么。 无论如何,你可以选择/删除等。如果你从gridview中选择一个项目,它需要填充用户控件3。

用户控件3是ItemDetail。 下面是DropDownLists,TextBoxes等...其中一些与其他人存在依赖关系(在DropDown中选择一个选项会影响DropDown 2中的选项)。

如果我从DateSelector中选择一个新日期,我是否从DateSelector Presenter中引发事件? 我必须以某种方式让其他用户控件知道选择了一个新日期,以便他们可以重新绑定他们的数据,但是如何? 如果我使用Page的Presenter订阅用户控件视图的演示者,我是不是会公然违反Demeter法则(通过他们的视图将演示者公开为属性)? 我不能使用Page的Presenter作为页面的全知控制器吗? 有什么我想念的吗?

到目前为止,我所阅读的所有内容都表示,“即使使用用户控件,MVP也很棒”,但在使用示例时,用户控件的使用很容易被遗忘。 在我看来,MVC将更加贴近我对此的思考模式,但目前,MVC不是一种选择。 任何帮助都会很棒。 提前致谢。

Page Presenter必须是协调页面上控件之间交互的人。 还有谁会这样做? 我有页面演示者监听DateSelector用户控件的事件。 从页面展示者的角度来看,它可能不需要知道是谁引发了事件(视图或演示者),因为它将DateSelector视为完全封装的控件。 内部工作应该从页面的演示者隐藏。

它只知道DateSelector用户控件引发了一个事件,现在它需要通过引发自己的事件或通过显式调用presenter上的方法来通知页面上的其他控件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM