2017-12-21 11 views
0

저는 VB.net을 처음 사용합니다 (이전에 C# 및 Java에서 제공). 나는 VB.net과 C#의 조합으로 작성된 레거시 사이트를 유지 관리했다.VB.net에서 ID로 asp : TextBox에 액세스 할 수없는 이유는 무엇입니까?

오늘 나는 VB에서 작성해야하는 사이트의 섹션에 새 페이지를 구현하려고 시도해 왔으며 어떤 일이 일어나고 있는지 감각을 잡으려고 애 쓰고 있습니다. 내 새 코드를 작업 페이지의 기존 코드와 비교했지만 내 부분에서 오류를 찾을 수는 없지만 뭔가 빠뜨려야합니다.

Visual Studio 2017의 "Add New Item ..."마법사를 사용하여 기본 파일을 만들고 Masterpage로 Webform을 선택했습니다. 이 사이트의 다른 페이지에서 사용하는 것과 동일한 마스터 페이지를 선택했습니다. 이 파일을 여러 번 삭제하고 다시 작성했지만 오류는 다양하지만 "..is not declared ..."라는 주제에 모두 해당됩니다. 보호 수준으로 인해 액세스 할 수 없을 수도 있습니다. " 여기

내에서 .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 예제를 찾고 하루 종일 유용한 답을 찾지 못했다. 이 라인에서

답변

1

봐 :

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/components/navigation/noajax.master" CodeBehind="default.aspx.vb" Inherits="_my.law.unc.edu._default" %> 

귀하의 Inherits 속성 값이 코드 숨김 클래스의 이름과 일치해야합니다 즉 _default 또는 당신은 당신의 영문 파일에 txtEmailSearch 철자가

+0

지적 해 주셔서 감사합니다. – cptully

+0

당신은 오신 것을 환영합니다. 이것은 아마도 인텔리 센이 작동하지 않는 이유 일 것입니다. – CalC

+1

당신이 제안한 변화를 만들어 냈고 꼭해야 할 것처럼 보입니다. 눈의 또 다른 세트가되어 주셔서 감사합니다! – cptully

1

manage.alumni._default. 수정하거나 코드 숨김 파일의 이름을 복사하여 붙여 넣습니다.

+0

내일 직장에서 보겠습니다. 이름 불일치의 가장 큰 이유는 인텔리 센스가 그 이름으로 나타나지 않았기 때문입니다. – cptully

+0

예, 철자가 틀리지 만 핵심적인 문제는 @CalC에서 언급 한 네임 스페이스 문제입니다. – cptully