天天看點

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中聲明什麼屬性呢?

繼續閱讀