前文已介紹透過「擦邊球」手法讓 DotNetNuke 符合國人瀏覽習慣(新視窗開啟內容),核心修改如下:
Edit.aspx,並修改其載入的皮膚與 Default.aspx 不同;Portals/_default/Skins/[目前皮膚] 下新增極簡皮膚,僅包含必要的 Pane;SiteUrls.config 讓 DNN 識別 Edit.aspx。雖可在模組目錄下新增 .aspx 頁面(如 /DesktopModules/Module1/openhere.aspx),但該頁面脫離模組架構,ModuleID、TabID 等核心變數需靠 URL 參數傳遞,導致架構混亂。根目錄層級的 Edit.aspx 則保留 DNN 核心解析機制,不影響模組層級資料存取。
DNN 皮膚機制包含 Skin(版面) 與 Container(模組容器)。若無 ContainerSrc=[G]Containers/_default/No%20Container 參數,新視窗內容會被容器皮膚包裹。加入此參數可移除容器,配合 window.print 獲得更佳列印效果。
雖 dnnprintmode=true 可移除皮膚與容器,但會導致頁面自訂 CSS 失效,模組脫離系統皮膚體系。且帶參數的 URL 不利 SEO。自訂 Edit.aspx 方案可保留 CSS 支援,且 URL 更乾淨。