"The name does not exist in the current context"在ASPX页面中。

17 浏览
0 Comments

"The name does not exist in the current context"在ASPX页面中。

我查看了类似的问题(12),但它们似乎没有给我提供解决方案。

我正在尝试向已经预先构建(即包含在)ASP.Net Web Form中的注册表单添加一个额外的字段。

我所做的是,在Register.aspx.cs的后端中,我尝试获取值txtCompanyInput.Text()

protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
   ... // 这里有一些代码
   String CompanyName = txtCompanyInput.Text();
   ... // 这里有其他代码
   Response.Redirect(continueUrl);
}

Register.aspx本身看起来是这样的:

...

  • 确认密码

    CssClass="field-validation-error" Display="Dynamic"

    ErrorMessage="确认密码字段是必填的。" />

    ControlToValidate="ConfirmPassword"

    CssClass="field-validation-error" Display="Dynamic"

    ErrorMessage="密码和确认密码不匹配。" />

  • ...

    当我尝试构建项目时,遇到以下错误:

    错误 1 当前上下文中不存在 'txtCompanyInput' 的名称 c:\users\...\Account\Register.aspx.cs 62 34 ProjectTest

    为什么我无法在后端引用txtCompanyName字段?

    0
    0 Comments

    如果您正在使用像我一样的VS2013更新5版本,请按照以下步骤重新生成设计文件:

    1. 删除所述的Register.designer.cs文件
    2. 突出显示'Register.aspx'(必须!)
    3. 转到菜单-'项目',点击'转换为Web应用程序'

    在解决方案资源管理器中右键单击任何内容将无法选择'转换为web应用程序'选项。

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

    0
    0 Comments

    在ASPX页面中出现"The name does not exist in the current context"的问题,其原因是由于Register.aspx.designer.cs文件未被更新。将Textbox和Label放置在asp:CreateUserWizard块内部导致该问题的发生,而实际上这是不应该这样做的。即使手动将元素添加到designer.cs文件中,当引用Textbox时仍会抛出错误(Object reference not set to an instance of an object)。在我最初的问题中,我应该包含来自Register.aspx文件的更大代码段。

    解决方法是将Textbox和Label元素移出asp:CreateUserWizard块,并重新生成Register.aspx.designer.cs文件。这样就可以解决"The name does not exist in the current context"的问题了。

    以下是修改后的Register.aspx页面的示例代码:

    重新生成Register.aspx.designer.cs文件后,可以在代码中正常引用Textbox和Label元素,而不会再出现"The name does not exist in the current context"的错误。

    0