首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

使用 URL 重寫實現 DotNetNuke 新視窗開啟內容(三):深度解析與常見問題答疑

     編輯:關於ASP.NET

前文已介紹透過「擦邊球」手法讓 DotNetNuke 符合國人瀏覽習慣(新視窗開啟內容),核心修改如下:

  1. 網站根目錄新增 Edit.aspx,並修改其載入的皮膚與 Default.aspx 不同;
  2. 在 Portals/_default/Skins/[目前皮膚] 下新增極簡皮膚,僅包含必要的 Pane;
  3. 修改 SiteUrls.config 讓 DNN 識別 Edit.aspx。

為何必須在根目錄層級新增頁面?

雖可在模組目錄下新增 .aspx 頁面(如 /DesktopModules/Module1/openhere.aspx),但該頁面脫離模組架構,ModuleID、TabID 等核心變數需靠 URL 參數傳遞,導致架構混亂。根目錄層級的 Edit.aspx 則保留 DNN 核心解析機制,不影響模組層級資料存取。

URL 中的 ContainerSrc 參數有何作用?

DNN 皮膚機制包含 Skin(版面) 與 Container(模組容器)。若無 ContainerSrc=[G]Containers/_default/No%20Container 參數,新視窗內容會被容器皮膚包裹。加入此參數可移除容器,配合 window.print 獲得更佳列印效果。

為何不直接使用 DNN 內建的無皮膚模式 (dnnprintmode)?

雖 dnnprintmode=true 可移除皮膚與容器,但會導致頁面自訂 CSS 失效,模組脫離系統皮膚體系。且帶參數的 URL 不利 SEO。自訂 Edit.aspx 方案可保留 CSS 支援,且 URL 更乾淨。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved