基类包括字段“btnLogin”,但其类型(FoodOrder.App_Code.LinkButtonDefault)不兼容。

6

基础类包含字段“btnLogin”,但其类型(FoodOrder.App_Code.LinkButtonDefault)与控件的类型(FoodOrder.App_Code.LinkButtonDefault)不兼容。

aspx:

<%@ Register Namespace="FoodOrder.App_Code" TagPrefix="ac1" %>
<ac1:LinkButtonDefault ID="btnLogin" runat="server" Text="Prijava" CssClass="gumbek" 
                onclick="btnLogin_Click" />
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')); }}
            }}}};";
    }
}

aspx.designer.cs:

protected global::FoodOrder.App_Code.LinkButtonDefault btnLogin;

有人能解释一下这个错误吗?


(私信)@senzacionale:在已经得到可行答案之后删除问题并不是很好的礼仪... - Matti Virkkunen
1个回答

6
我认为您的App_Code文件夹中存在循环引用。
微软建议采取以下两种方法进行修复:http://support.microsoft.com/kb/919284 要么修改web.config将<compilation>元素设置为false(仅适用于小型应用程序)
要么重新排列应用程序中的文件夹,也就是将链接按钮类放在其他地方。

2
刚遇到这个问题,但最终找到了解决方法。我的控件结构如下: /abc/control2.ascx -> 引用 control1.ascx /def/control1.ascx如果我编译并运行 aspnet merge,一切都很好。但是除了单个 web.dll 之外,我还会得到一个额外的控件1的 dll。解决方法很简单,只需将 control2 移动到 control1 的文件夹 (/def) 中即可。 - BlueFox
1
我的问题(相当多年以后!)似乎是这个,尽管不在App_Code文件夹内,而是在各个文件夹中的aspx和ascx文件之间。这特别棘手,因为错误没有报告我刚刚更改的代码 - 似乎我已经有了从文件夹UserControls/Y到文件夹X的有些不自然的依赖关系,并且我添加了一个新的依赖关系从X到UserControls/Y。编译器试图通过制作额外的DLL来解决它,但我在部署时遇到了错误。遗憾的是KB文章已被删除,但可以在https://mskb.pkisolutions.com/kb/919284中找到存档。 - Paul Stephenson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接