该名称在当前上下文中不存在"在ASPX页面

本文关键字:quot 不存在 ASPX 页面 上下文 | 更新日期: 2023-09-27 18:06:37

我已经看过类似的问题(1,2),但他们似乎没有为我提供解决方案:S

我试图在ASP中添加一个额外的字段到已经预先构建的注册表(即附带)。Net Web表单。

我正在做的是,在Register.aspx.cs后端我试图获得值txtCompanyInput.Text();:

    protected void RegisterUser_CreatedUser(object sender, EventArgs e)
    {
       ... // some code here 
       String CompanyName = txtCompanyInput.Text();
       ... // other code here
       Response.Redirect(continueUrl);
    }

Register.aspx本身看起来像这样:

    ...
    <li>
        <asp:Label runat="server" AssociatedControlID="ConfirmPassword">
           Confirm password</asp:Label>
        <asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" />
        <asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword"
           CssClass="field-validation-error" Display="Dynamic"
           ErrorMessage="The confirm password field is required." />
        <asp:CompareValidator runat="server" ControlToCompare="Password" 
           ControlToValidate="ConfirmPassword"
           CssClass="field-validation-error" Display="Dynamic"
           ErrorMessage="The password and confirmation password do not match." />
    </li>
    <li>
           <asp:TextBox ID="txtCompanyInput" runat="server"></asp:TextBox>
    </li>
    ...

当我尝试构建项目时,我遇到一个错误说:

Error 1 The name 'txtCompanyInput' does not exist in the current context c:'users'...'Account'Register.aspx.cs 62 34 ProjectTest

是否有一个原因,为什么我不能引用txtCompanyName字段后端?

该名称在当前上下文中不存在"在ASPX页面

如果您像我一样使用VS2013 update 5,请执行以下步骤来重新生成设计器文件:

  1. 删除指定的Register.designer.cs

  2. 突出的寄存器。

  3. 进入菜单->"项目",点击"转换为Web应用程序"

右键单击解决方案资源管理器中的任何内容都不会让您选择"转换为web应用程序"。

希望这对一些初学者有所帮助。

Ehsan Sajjad走对了路。Register.aspx.designer.cs文件没有更新。

我终于弄清楚这是由于Textbox s和Label s被放置在asp:CreateUserWizard块内-你不应该这样做。即使手动将元素添加到designer.cs文件中,在引用Textbox时也会抛出错误(对象引用未设置为对象的实例)

我应该包括一个更大的代码段从Register.aspx文件在我最初的问题。