我正在使用 ASP.NET MVP(尝试监督控制器)和单元测试(迟到总比没有好!)编写我的第一个应用程序,我遇到了一些困境。我已经编写了 3 个用户控件,全部经过测试和接口,演示者在拖。现在我来到一个采用这三个用户控件的页面并遇到以下问题:
用户控件 1 是 DateSelector,它是带有几个其他按钮/列表的日历控件。没有什么真正令人兴奋的。
用户控件 2 是 DailyList。猜猜它是什么。无论如何,您可以选择/删除等。如果您从网格视图中选择一个项目,它需要填充用户控件 3。
用户控件 3 是 ItemDetail。下面是 DropDownLists、TextBoxes 等......有些与其他人存在依赖关系(在 DropDown 中选择一个选项会影响 DropDown 2 中的选项)。
如果我从我的 DateSelector 中选择一个新日期,我是否会从 DateSelector Presenter 中引发事件?我必须以某种方式让其他用户控件知道选择了一个新日期,以便他们可以重新绑定他们的数据,但是如何?如果我使用页面的 Presenter 来订阅用户控制视图的 Presenter,我会不会公然违反 Demeter 法则(通过他们的 View 将 Presenter 暴露为属性)?我不是必须将页面的 Presenter 用作页面的全知控制器吗?有什么我想念的吗?
到目前为止我读到的所有内容都说,“MVP 很棒,即使使用用户控件也是如此”,但是当涉及到示例时,用户控件的使用很容易被遗忘。在我看来,MVC 会更符合我对此的思考模式,但目前,MVC 不是一种选择。任何帮助在这里都会很棒。提前致谢。