在Visual Studio 2010中对网页进行更改后,Designer.cs会损坏

时间:2012-02-22 10:58:18

标签: c# visual-studio-2010 visual-studio visual-studio-2013 code-behind

当我在aspx文件中进行更改时,Visual Studio的行为不正常。它对designer.cs文件进行了更改。这些更改意味着我无法通过我的代码隐藏文件中的ID访问我的任何控件。

当我恢复更改(使用SVN),这是在我背后做的,在designer.cs文件中,我的构建再次成功,一切正常。

我看到Visual Studio删除了设计器文件中的很多行。

我在网上看过一些类似的问题,但我找不到一个好的解决方案。

您是否有人遇到过与Visual Studio相同的问题,可以帮我解决这个问题吗?

更新:我发现Visual Studio将此行添加到designer.cs:

 protected global::System.Web.UI.WebControls.UpdatePanel UpdatePanel1;

但这应该是:

 protected global::System.Web.UI.UpdatePanel UpdatePanel1;

当我在designer.cs文件中手动进行此更改时,它可以正常工作。但每次我对aspx文件进行更改时,Visual Studio都会再次创建错误的引用。

3 个答案:

答案 0 :(得分:4)

我有同样的问题。我的解决方法是将定义从设计器文件移动到代码隐藏文件并正确定义它:     Protected WithEvents UpdatePanel1 As Global.System.Web.UI.UpdatePanel

而不是让设计师不正确地覆盖它     Protected WithEvents UpdatePanel1 As Global.System.Web.UI.WebControls.UpdatePanel

即时通讯使用vs2013 vb.net asp web表单应用程序。

我也看到过将web.config文件中的目标框架更改为4.0的建议(对我来说不起作用,我的目标是4.5,这两个目标都遇到了问题)

我还看到了使用Register标签的建议:     <%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web"%> 在页面顶部。这确实解决了我测试时抛出的“错误”,但是它为我的所有asp标签都出现了很多“警告”。

答案 1 :(得分:3)

我的办公室在Visual Studio 2013中受到此问题的困扰。我们使用以下解决方法:

  1. 右键点击该项目,然后选择Properties
  2. Application标签上,更改Target framework版本并保存项目。
  3. 重复步骤1和2,将目标框架设置回所需的框架。
  4. 再次保存.aspx文件。
  5. 这可以100%的时间工作,但我们发现它搞砸了我们的一些web.config设置。

    我们现在使用以下解决方法,它似乎也可以工作,并且不会对项目配置文件进行任何重大更改:

    1. 右键点击该项目,然后选择Unload Project
    2. 右键点击该项目,然后选择Reload Project
    3. 再次保存.aspx文件。

答案 2 :(得分:1)

确保cs文件的类名与designer.cs相同,并检查aspx文件中页面的Inherits属性是否相同。还要检查项目中是否有与您的页面类名相同的类,同时我也想知道在aspx页面中进行任何更新时出现的错误。