aspx和aspx.cs文件之间的链接中断

3

我曾经遇到过几次相同的问题,是在重命名ASPX页面后发生的。我很惊讶在stackoverflow上找不到其他人有同样的问题。

当我运行我的ASP.NET C#项目时,调试器会给我一个类似于这样的消息。

Error   5   The name 'txtTitle' does not exist in the current context

看起来aspx和aspx.cs文件已经解绑了。我唯一发现的解决方法是重新创建页面,然后复制/粘贴我的代码。

有没有什么方法可以在不重新创建整个页面的情况下解决这个问题?

谢谢

4个回答

6
代码文件包含一个部分类,在ASPX头声明中引用。为了使其正常工作,文件名和ASPX头中的实际类名必须匹配。
<%@ Page Title="TestPage" Language="C#"  AutoEventWireup="true" CodeFile="TestPage.aspx.cs" Inherits="TestPage" %>

在您的情况下,可能是类名不匹配。请检查代码后台.cs文件中的类名是否与Inherits之后的名称匹配。
ASP.NET中使用的部分类的概念在此处详细说明。

刚刚发现我的页面类的命名空间在继承属性中缺失了。下次再发生这种情况我一定会注意到它。谢谢! - Jason

1

我对这种情况感到惊讶,因为我经常重命名Silverlight用户控件而没有任何负面影响。

在aspx页面和后台代码中,是否所有的类引用都被重命名了?

您可以尝试使用这个工具来重新链接它们。


1
这也可能是由于whatever.aspx.designer.vb文件依赖于whatever.aspx.vb而不是whatever.aspx。如果是这种情况,在Visual Studio中展开文件组时,它应该显示不正确。要修复它,只需从项目中排除受影响的文件,然后重新包含它们-故障项目配置文件应该重新生成,现在应该正常工作。(C#同理。)

0

我曾经遇到过同样的问题,并注意到有时候,但并不总是,在更改类时,.aspx页面中的CodeFile设置没有更新。如果这是你遇到的同样问题,你可以手动更改它:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MyClass.aspx.cs" Inherits="MyClass" %>
                                                        ^^^^^^^

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接