首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.Net网站的错误BC30506: BC30506子句要求在发布时在包含类型或其基类型之一中定义一个WithEvents变量

ASP.Net网站的错误BC30506: BC30506子句要求在发布时在包含类型或其基类型之一中定义一个WithEvents变量
EN

Stack Overflow用户
提问于 2022-10-31 12:44:09
回答 2查看 82关注 0票数 0

我试图在VisualStudio2019,.Net Frameworkv4.5.1中发布一个网站(或者webapp,不确定它是哪一个)。它构建时没有问题,但当我试图发布时总是抛出一个错误:

代码语言:javascript
运行
复制
Error BC30506: Handles clause requires a WithEvents variable defined in the containing type or one of its base types.

此错误指的是以下按钮:

代码语言:javascript
运行
复制
<asp:Button ID="btnSearch" CssClass="subButton" runat="server" />

它在后面的代码中触发此代码:

代码语言:javascript
运行
复制
Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Search.Click

这个按钮已经在我们的直播网站上正常工作,多年来没有被改变,所以我不明白为什么它突然是一个问题。我在网上看到的所有答案都建议添加一个WithEvents子句,但是没有地方放它,因为这个按钮不是在代码中定义的。

有人能建议我怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2022-10-31 13:26:11

在尝试和发布之前,您希望确保项目生成。(编辑-我很抱歉--我看到你注意到了项目的建设)。

但是,如果您有这个错误呢?

您可以通过以下几种方法修复此错误

注释掉整个存根(不要删除-你需要里面的代码)

在注释掉代码存根后(突出显示代码存根ctrl,ctrl-c)

然后在页面上的设计模式,只需双击按钮。

倒转回后面的代码,然后看到一个新的事件单击,然后您可以在原始代码存根和un-命令(突出显示代码,ctrl,ctrl)(当然,您可以始终高亮显示,并从菜单中选择commnent/un-注释代码)。

此时,错误应该消失了。

vb可以用两种方式连接一个点击事件。

第二条路?

从代码存根中移除“Search.Click句柄”,然后在标记中简单地键入按钮"onclick=“的属性。

当你点击"=“时,智能应该会弹出一个事件的选择。如下所示:

因此,如果从设计器中双击一个按钮,则会得到一个事件+ "with events“。

但是,您也可以输入标记onclick= (单击"=“的瞬间,就可以得到inteli-sense )。如果您愿意,甚至可以使用create新事件)。

这两种情况下的结果是相同的。在一种情况下,"with events“将在页面类级别自动连接事件,因此按钮上不需要"onclick”属性。

通常您会看到第二种格式(onclick=“一些事件名称”),当按钮被放在中继器内时,或者说网格视图。在这种情况下,您不能双击按钮,因为您获得了网格视图/列表视图/中继器等事件。因此,要将平面简按钮连接到此类数据控件中,最后必须在标记中指定onclick事件。

所以,既然原始人确实有“事件”?

然后,在你做任何事情之前,我会先从菜单中尝试一个构建->重建解决方案。(事实上,我会在设计模式下打开表单,而“脏”表单(仅在标记点击enter中)。这将迫使页面类重新构建,因此您的错误可能会消失。如果生成错误仍然存在,请尝试上面的步骤1或2。

我认为最简单的方法是从后面的代码中删除"with events“,然后在标记中简单地添加该按钮的onclick=属性,正如前面所指出的,它应该会弹出一个选项列表--包括单击事件存根(您已经删除了"withevents”)。

但是,您应该尝试确定这是“网站”还是“网站应用程序”。

因为这是vb,那么如果您作为一个项目打开,那么您将得到一个引用设置页面(这比c#页面好得多)。

这个:

项目->“您的项目名称”属性。

然后你会看到:

使用上面的内容,您可以“立即”查看是否缺少任何引用。但是,使用build项目的简单尝试也会告诉您是否缺少引用。

票数 0
EN

Stack Overflow用户

发布于 2022-11-08 15:14:45

谢谢,Albert D. Kallal。这没什么帮助,但我很感激你的努力,也许它能帮到别人。我在搜索按钮上有一个单击事件,如下所示:

代码语言:javascript
运行
复制
Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Search.Click

我注意到按钮的Id是btnSearch,在句柄子句中没有查找该Id。我试图更改Handles子句以匹配按钮,但它没有工作。直到我将按钮的Id更改为只进行搜索时,它才最终成功发布。

不幸的是,现在我已经在服务器上得到了代码--我有一个不同的错误--但是我不会在这里讨论这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74263466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档