“基類包括字段,但其類型與控件的類型不兼容”的解決方法


程序在VS中運行正常,但發布后出現如下提示。
 

“/”應用程序中的服務器錯誤。

 

分析器錯誤

說明: 在分析向此請求提供服務所需資源時出錯。請檢查下列特定分析錯誤詳細信息並適當地修改源文件。

分析器錯誤信息: 基類包括字段“SuperMarket1”,但其類型(Supermarket_SuperMarket)與控件(ASP.supermarket_supermarket_ascx)的類型不兼容。

源錯誤:


行 27: </div>
行 28: <div id="main_sideColumn">          
行 29:     <uc1:SuperMarket ID="SuperMarket1" runat="server" />
行 30:     <uc2:LeaguelShop ID="LeaguelShop1" runat="server" />  
行 31: </div> 

源文件: /Supermarket/default.aspx    行: 29

 

 

版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42

進過判斷,發現原因。
因為在同一個目錄Supermarket下,已經有了Supermarket.aspx這個頁面,但又添加了Supermarket.ascx用戶控件。
在編譯前,頁面文件和用戶控件的cs文件是獨立存在的,因此沒問題。
編譯后cs文件全部打包進dll,兩個cs文件的命名空間都是Supermarket_Supermarket,產生了沖突,因此出現了上面這個錯誤。
將Supermarket.ascx控件改名后,問題解決

 

 

PS:今天我算遇到這個問題了,它就是因為這 個網站里面一個ASPX,與ASCX的命名空間名是一樣的去了,所以就會產生這樣的錯,在開發時,會不出錯,因為是分開一個一個的CS,也指向不同的 public partial class edit : System.Web.UI.Page,public partial class edit : System.Web.UI.UserControl,“edit”這個命名空間相同了,開發是因為是分成兩個CS,但發布的時候,他們都會被封裝到 DLL里面,就形成了是相同的命名空間:edit,會使得網站報錯的。所以把其中一個改成另外一個唯一的命名空間就可以了。如把ASCX的命名空間改了:

public partial class newshow : System.Web.UI.UserControl   ,頁面里的HTML代碼也要改一處:<%@ Control Language="C#" AutoEventWireup="true" CodeFile="newshow.ascx.cs" Inherits="newshow" %>   :inherits要改成和命名空間一樣的名字。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM