具有OnServerClick无法查找方法的HTML按钮

时间:2015-10-17 17:19:06

标签: c# asp.net

尝试构建应用程序时出现以下错误:

  

CS1061:'ASP.mailbox_aspx'不包含'MarkAsRead'的定义,并且没有可以找到接受“ASP.mailbox_aspx”类型的第一个参数的扩展方法'MarkAsRead'(您是否缺少using指令或程序集引用?)

但是一切似乎都应该存在 - 除非有一些我缺少的东西?

HTML:

<button id="markasread" runat="server" class="btn btn-white btn-sm" data-toggle="tooltip" data-placement="top" title="Mark as read" onserverclick="MarkAsRead"><i class="fa fa-exclamation"></i> </button>

C#:

private void MarkAsRead(object sender, EventArgs e)
        {
            foreach (RepeaterItem aItem in rptInbox.Items)
            {
                HtmlInputCheckBox chkDisplayTitle = (HtmlInputCheckBox)aItem.FindControl("chkDisplayTitle");
                if (chkDisplayTitle.Checked)
                {
                    var messageid = chkDisplayTitle.Value;
                }
            }
        }

1 个答案:

答案 0 :(得分:1)

那是因为你的方法是private: -

protected void MarkAsRead(object sender, EventArgs e)

当你在aspx页面中定义控件时,它被编译成一个类,该类由类后面的代码继承。因此,在您的情况下,它无法找到您在类后面的代码中定义的方法。