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中声明什么属性呢?

上一篇:MySQL基础讲解(一)


下一篇:“乔帮主”的云技术实践绝学,“降云十八掌”