• “基类包括字段,但其类型与控件的类型不兼容”的解决方法


    程序在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要改成和命名空间一样的名字。。

  • 相关阅读:
    Linux 文件、目录与磁盘格式
    前端初始-HTML
    图片验证码
    note_Set
    MVC登出友情提示
    c#后台调用API
    服务器上调用 批处理、程序集的那些事
    客户懂点代码是最致命的毒药
    Json基础
    多条目日志记录小结
  • 原文地址:https://www.cnblogs.com/xiaoma-qi/p/5530196.html
Copyright © 2020-2023  润新知