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

ASP.NET 將 JavaScript 檔案編譯為 DLL 內嵌資源供頁面註冊調用

     編輯:ASP.NET 基礎

將 JavaScript 程式碼封裝為 DLL 內嵌資源,可避免前端檔案散落、便於版本控管與部署。本文示範建立類別庫專案、內嵌 JS 檔、註冊 WebResource、建立伺服器控制項自動註冊腳本的完整流程。

步驟總覽

  1. 建立類別庫專案 JSControl
  2. 新增 JScript1.js,設定 Build Action = Embedded Resource
  3. 在 AssemblyInfo.cs 註冊 WebResource
  4. 建立繼承 WebControl 的類別,於 OnPreRender 註冊腳本
  5. 參考 DLL 並在頁面註冊控制項標籤前綴

1. JavaScript 內容 (JScript1.js)

function showAlert() {
    alert('Today is a good day');
}

2. AssemblyInfo.cs 註冊

[assembly: System.Web.UI.WebResource("JSControl.JScript1.js", "application/x-javascript")]

資源名稱格式:預設命名空間.檔案名稱

3. 伺服器控制項 (Class1.cs)

namespace JSControl {
    public class Class1 : System.Web.UI.WebControls.WebControl {
        protected override void OnPreRender(EventArgs e) {
            base.OnPreRender(e);
            if (Page != null) {
                Page.ClientScript.RegisterClientScriptResource(typeof(Class1), "JSControl.JScript1.js");
            }
        }
    }
}

4. 使用頁面註冊與調用

<%@ Register Assembly="JSControl" Namespace="JSControl" TagPrefix="zhi" %>
<html><head runat="server">
  <zhi:Class1 ID="rs1" runat="server" />
</head><body>
  <script type="text/javascript">
    $(function() { showAlert(); });
  </script>
</body></html>

優缺點分析

優點缺點
JS 程式碼編譯進 DLL,部署單一檔案修改 JS 需重新編譯 DLL,開發迴較長
自動處理腳本註冊,避免重複引用無法利用瀏覽器快取個別 JS 檔 (除非搭配 CDN)
可搭配壓縮、混淆在建置時期處理偵錯困難,需對應 .map 或來源映射

現代替代方案

  • Bundling & Minification (ASP.NET 4.5+ / Core):ScriptBundle 自動合併、壓縮、快取
  • Webpack / Vite / Rollup:前端建置工具產出單一 bundle,搭配 aspnet-webpack 整合
  • Razor Class Library (RCL):ASP.NET Core 共享靜態資源與 Razor 元件

此技術適用於舊版 Web Forms 專案或需強制封裝邏輯的場景,新專案建議採用現代前端建置流程。

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