我是VB.net的新手(之前来自C#和Java)。我接管了一个用VB.net和C#组合编写的遗留站点。
今天我一直在尝试在网站的一个部分上实现一个必须用VB编写的新页面,我正在努力使发现正在发生的事情。我已经将我的新代码与工作页面的现有代码进行了比较,但我找不到任何错误,但我必须遗漏一些东西。
我使用Visual Studio 2017的“添加新项目...”向导创建了基本文件,并选择了带有母版页的Webform。我选择了与该站点的其他页面使用的相同的母版页。我已经删除并重新创建了这些文件,但错误各不相同,但都是围绕着“..未声明的主题。由于其保护级别可能无法访问。”
这是我的.aspx文件:
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/components/navigation/noajax.master" CodeBehind="default.aspx.vb" Inherits="_my.law.unc.edu._default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cphContent1" runat="server">
<asp:UpdatePanel ID="upPage" UpdateMode="Conditional" ChildrenAsTriggers="true" runat="server">
<ContentTemplate>
<label for="<%=txtEamilSearch.ClientID %>">Email:</label><br />
<asp:TextBox ID="txtEamilSearch" runat="server" />
<asp:Button ID="butTest" Text="Change" OnClick="butTest_OnClick" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
这是我的代码(.aspx.vb)文件:
Namespace manage.alumni
Public Class _default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Sub butTest_OnCLick(ByVal sender As Object, ByVal e As EventArgs)
'this line is meant to change the content of the textbox
' but I haven't gotten past the inability to recognize
' the control.
txtEmailSearch
End Sub
End Class
End Namespace
我的问题是,目前我收到的错误是“未宣布txtEmailSearch
。由于其保护级别,可能无法访问”。
我觉得我必须在这里错过一些非常基本的步骤,但是整整一天的谷歌搜索错误信息并寻找VB.Net/ASP.Net示例并没有找到一个有用的答案。
看看这一行:
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/components/navigation/noajax.master" CodeBehind="default.aspx.vb" Inherits="_my.law.unc.edu._default" %>
您的Inherits
属性值应与您的代码隐藏类的名称匹配,即_default
或manage.alumni._default
您的aspx文件中有拼写错误的txtEmailSearch。修复它或从代码隐藏文件中复制并粘贴名称。