基类包含字段'btnLogin',但其类型(FoodOrder.App_Code.LinkBut​​tonDefault)不兼容

sen*_*ale 5 c# asp.net

基类包括字段'btnLogin',但其类型(FoodOrder.App_Code.LinkBut​​tonDefault)与控件类型(FoodOrder.App_Code.LinkBut​​tonDefault)不兼容.

ASPX:

<%@ Register Namespace="FoodOrder.App_Code" TagPrefix="ac1" %>
<ac1:LinkButtonDefault ID="btnLogin" runat="server" Text="Prijava" CssClass="gumbek" 
                onclick="btnLogin_Click" />
Run Code Online (Sandbox Code Playgroud)

LinkBut​​tonDefault:

namespace FoodOrder.App_Code
{
    public class LinkButtonDefault : LinkButton
    {
        protected override void OnLoad(System.EventArgs e)
        {
            Page.ClientScript.RegisterStartupScript(GetType(), "addClickFunctionScript",
                _addClickFunctionScript, true);

            string script = String.Format(_addClickScript, ClientID);
            Page.ClientScript.RegisterStartupScript(GetType(), "click_" + ClientID,
                script, true);
            base.OnLoad(e);
        }

        private const string _addClickScript = "addClickFunction('{0}');";

        private const string _addClickFunctionScript =
            @"  function addClickFunction(id) {{
            var b = document.getElementById(id);
            if (b && typeof(b.click) == 'undefined') b.click = function() {{
                var result = true; if (b.onclick) result = b.onclick();
                if (typeof(result) == 'undefined' || result) {{ eval(b.getAttribute('href')); }}
            }}}};";
    }
}
Run Code Online (Sandbox Code Playgroud)

aspx.designer.cs:

protected global::FoodOrder.App_Code.LinkButtonDefault btnLogin;
Run Code Online (Sandbox Code Playgroud)

有人可以解释我的错误吗?

Kev*_*che 5

我认为你有一个使用App_Code文件夹的循环引用.

MS建议使用两种方法进行修复:http://support.microsoft.com/kb/919284

修改web.config以将<compilation>元素设置为false(仅推荐用于小型应用程序)

要么

重新排序应用程序中的文件夹.AKA - 把你的链接按钮类放在其他地方.

  • 刚刚遇到这个问题并引导我修复,我的控件结构如下/abc/control2.ascx - > references control1.ascx /def/control1.ascx现在如果我编译并运行aspnet merge,一切都很好.但是没有单个web.dll,我为control1获得了额外的dll.修复只是将control2移动到control1的文件夹(/ def) (2认同)