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

ASP.NET 頁面指令中 CodeBehind 與 Src 的區別及找不到 CS 文件的解決

     編輯:ASP.NET 基礎

問題現象

在 .aspx 頁面頂部的 @Page 指令中,使用 Codebehind 屬性指定後端代碼文件時,發布到 IIS 後報錯“找不到 CS 文件”或無法編譯。

原因分析

屬性用途適用場景
CodeBehindVisual Studio 設計時使用,指定代碼隱藏文件路徑。編譯後生成 DLL 放入 Bin 目錄,運行時不再需要 .cs 文件。Web Application Project (WAP),預編譯部署模式。
Src運行時動態編譯指令,告訴 ASP.NET 執行去哪裡找到 .cs 源文件進行即時編譯。Web Site Project (WSP),無預編譯、源碼部署模式。

錯誤示例

<%@ Page language="c#" Codebehind="Main.aspx.cs" AutoEventWireup="false" Inherits="Hr.WebForm1" %>

若項目為 Web Site 類型或未預編譯部署,運行時會嘗試尋找 Main.aspx.cs 文件進行編譯,但 CodeBehind 不被 ASP.NET 運行時識別,導致找不到文件。

正確寫法

<%@ Page language="c#" Src="Main.aspx.cs" AutoEventWireup="false" Inherits="Hr.WebForm1" %>

將 CodeBehind 改為 Src,ASP.NET 運行時會根據該路徑動態編譯源文件。

補充說明

  • Inherits 指定類的完整命名空間名稱,必須與 .cs 文件中的類名一致。
  • Web Application Project (WAP) 開發時用 CodeBehind,發布時只需部署 DLL 和 .aspx(無 .cs)。
  • Web Site Project (WSP) 開發和部署均需 .cs 文件,頁面指令用 Src。
  • VS 2005+ 默認創建為 WAP,但舊項目或手動創建可能為 WSP,需根據項目類型選擇正確屬性。

理解兩種專案模型的編譯部署差異,是解決此類問題的關鍵。

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