DNN 模块MVP 模式学习中的一些问题

为了让View部分可以测试,我们使用interface来分离View和业务逻辑的耦合。

我的问题是:

Q:对于在aspx.design.cs中声明的控件,我们也需要在interface中声明吗?如果要声明,那么在aspx.design.cs中的控件声明是不是就是interface的实现?

我们不能在interface直接声明跟aspx.design.cs控件同名的变量,我们应该认为aspx.design.cs中的控件就是view的一部分,我们无法控制。我们能做的是在interface中声明一个跟控件同类型的变量,然后在presenter中初始化这个变量,再把这个变量赋值给控件。我们也可以声明一些给控件属性赋值的变量在interface里面,比如如果我们需要给一个DataGrid提供一个List作为数据源,我们只需要在interface中声明一个List,然后在aspx.cs中实现就可以了。

Q:因为View是基于PortalModuleBase的,在view.aspx.cs中,会使用很多PortalModuleBase中的属性,那是不是用到了什么属性,我们就要在interface中声明什么属性呢?

posted on   m2land  阅读(350)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2009-03-27 给VMware Player 2.x增加Shared Folders
2008-03-27 使用DotNetNuke(DNN) Startkit 4.7(及以上版本)安装无法完成问题的解决方法
2008-03-27 DotNetNuke各项业务外包
2006-03-27 如何解决InfoPath的分页问题

导航

统计

点击右上角即可分享
微信分享提示