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

时间:2010-10-27 02:05:22

标签: c# asp.net vb.net

在重命名后,我有几次使用不同的ASPX页面遇到同样的问题,我很惊讶我在stackoverflow上找不到其他有同样问题的人。

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

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

似乎aspx和aspx.cs文件不再绑定。我找到的唯一解决方法是重新创建页面并复制/粘贴我的代码。

任何想法如何解决这个问题而不重新创建整个事情?

由于

4 个答案:

答案 0 :(得分:6)

代码文件包含ASPX标头声明中引用的部分类。 ASPX标题中的文件名和实际类都必须匹配才能生效。

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

在您的情况下,类名可能不匹配。检查codebehind .cs文件中的类名是否与继承后的名称匹配。

ASP.NET中使用的部分类的概念详细here

答案 1 :(得分:1)

我对此感到惊讶,我经常重命名Silverlight用户控件而没有任何有害的副作用。

是否所有对类的引用都在aspx页面和代码中重命名?

您可以尝试使用this util重新链接它们。

答案 2 :(得分:1)

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

(C#的相同理论。)

答案 3 :(得分:0)

我遇到了同样的问题,并注意到有时(但并非总是如此),当更改类时,CodeFile页面中的.aspx设置不会更新。如果这是您遇到的同样问题,您可以手动更改它:

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