未声明“ txtName”由于其保护级别,它可能无法访问

问题描述

| 在编译时在页面上放置一个文本框后,出现上述错误: \'txtName \'未声明。由于其保护级别,它可能无法访问。 当我尝试读取代码隐藏页面中文本框的值时,就会发生这种情况。 我不确定是什么原因引起的...任何想法? 在aspx文件中,我有:
<%@ Page Language=\"VB\" AutoEventWireup=\"false\" CodeFile=\"signup.aspx.vb\" Inherits=\"signup\" %>
在aspx.vb文件后面的代码中,我有:
Imports System.Data.SqlClient
Partial Class signup
    Inherits System.Web.UI.Page

    Protected Sub btnSubmit_Click(ByVal sender As Object,ByVal e As System.EventArgs) Handles btnSubmit.Click 
    

解决方法

        好的,我现在解决了。这是因为我重命名了.aspx文件的副本,并且该文件仍使用文件后面的较新版本代码。 文件后面的代码正在寻找txtName.text,但是在旧版本的.aspx文件中,txtName不存在! 我已经从项目中排除了该页面的旧版本,它现在似乎可以正常运行。 谢谢大家的帮助。     ,        文本框是否直接在页面上?那是什么类型的项目?是从文件系统打开的Web应用程序或网站吗?如果它是Web应用程序,则设计人员可能无法更新YourPage.aspx.designer.cs文件。检查该文件,以确保您具有txtName的定义,例如:
protected global::System.Web.UI.WebControls.TextBox txtName;
如果不存在,请删除.design.cs文件,右键单击页面,然后选择\“转换为Web应用程序。这将正确地重新创建.design.cs文件。     ,        可能是文本框声明中缺少的内容:
runat=\"server\"
    ,        我有完全相同的错误的不同原因,它与OP所发现的相似,但不完全相同。
My page.aspx.designer.vb
不同步,出现错误。我的一个控件被定义了两次(我想是因为我复制/粘贴了一个现有控件,而未在粘贴之前编辑ID)。删除第二条声明后,我就可以构建该错误了。有趣的是,“ 5”没有列出该错误以及由于缺少该页面构建而导致的其他错误。希望这对其他人有帮助。     ,        类的排序方式是页面的生成类继承自代码隐藏类-它们不是局部的,也不是相反的。这意味着您的代码隐藏类不了解您放置在页面上的控件。如果要访问在页面本身中声明的属性,则需要首先在代码隐藏类中声明它:
protected TextBox txtName;
然后,您可以在代码隐藏文件中访问此成员。这将正确连接,以匹配页面中的控件。     ,        我以前有那个问题。不知道是什么原因造成的。但是,通过删除有问题的文本框并再次添加它,可以解决此问题。     ,        当后面代码中的类未指定
Public
时,出现此错误。尝试这个:
Partial Public Class signup   <-------------Make sure the Public keyword is there
    Inherits System.Web.UI.Page
    ...
End Class
    ,        这就是我的情况。 -我在后面的代码中声明了变量
Protected Friend sMessage As String = \"\"
-然后aspx:<%= sMessage%> 出现这种情况(Visual Studio 2015-ASP WebForm项目) 然后我尝试: -清洁溶液 -重建 然后问题就消失了   如果干净的解决方案和重建不起作用
try to clean the obj directory
  如果变量是asp组件 确保在aspx文件中运行runat = \“ server \”     ,        通过从div中删除runat = \“ server \”属性,即使我没有在服务器端访问div,也遇到了这个问题。问题在于,在客户端,我试图像这样$(\'#<%= divMultipleDaysOptions.ClientID%> \')访问div的ClientID。     ,        我将asp.net网站从3.5更改为4.0时遇到了同样的问题。 为了解决该问题,我在4.0页中逐页重新创建了整个网站,确保所有页面都具有相同的名称。 我将每个页面的页面内容都复制了,从3.5网站到4.0网站的第一行以
<%@
开头。 我将页面类中的所有代码复制到了从3.5到4.0网站的每个页面后面的代码中。     ,        我收到类似的错误,但情况有所不同。场景:我在文件夹中的解决方案中添加了现有页面,因此我不得不更改html文件的Page标记中某些属性(Inherits)的值。当我在Inherits属性中更改文件夹结构时,我犯了一个错误,并导致了此错误。当文件夹结构不同时,文件文件后面的代码将无法访问.aspx文件中的控件。朋友们,当您遇到此类错误时,请查看Inherits属性值(即文件夹结构正确)。     ,另一种可能的情况是,如果Page.aspx.vb文件中的类名与Page.aspx.designer.vb文件中的类名不同。这些必须相同。     ,        将控件添加到最初用VS 2008 .Net 3.5编写到VS 2010 .Net 4的Web Set中之后,我遇到了类似的问题。添加控件之后,出现了相同的错误。当我查看该页面的.designer.vb文件时,添加的控件不存在。只需将控件添加到文件底部即可解决该问题:     受保护的WithEvents lblApprove作为Global.System.Web.UI.WebControls.Label     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...