当新控件添加到.aspx时,Designer.cs不会更新

我已经在我的aspx文件中添加了一个新控件,并注意到新控件不仅没有添加到设计器文件中,而且还缺少了团队其他成员添加的其他一些控件。 我已经尝试删除designer.cs文件并使用“转换为Web应用程序”但没有成功。 我尝试过的其他一些事情已经从项目中排除了aspx,构建,然后重新包含但没有成功。 我还手动输入设计器中缺少的控件。 当我这样做之后,会出现一个错误,说明控件没有定义,即使它实际上是,并且我应该检查我是否缺少指令。

我添加的第一个控件是来自类似控件的复制和粘贴,并进行了必要的更改。 但是,我也尝试手动创建具有相同结果的控件。

有任何想法吗?

试试这个

1.-将CodeBehind="Name.aspx.cs"更改为CodeFile ="Name.aspx.cs"

2.-建立

CodeFile ="Name.aspx.cs"CodeFile ="Name.aspx.cs"更改为CodeBehind ="Name.aspx.cs"

我的工作中遇到了这个问题。

最可靠的是你重新生成.designer.cs文件, 这是解决方案:

  • 通过解决方案资源管理器找到损坏的aspx.designer.cs文件
  • 仅从项目中删除designer.cs文件
  • 右键单击您的主aspx文件,然后选择“转换为Web应用程序”

关闭Visual Studio,然后从C:\Windows\Microsoft.Net\Framework\Your_.Net_Version\ProjectName删除临时ASP.NET文件删除文件夹ProjectName并重新启动Visual Studio。 我前段时间遇到过类似的问题,这些问题都是通过这些行动解决的。

如果使用IIS,则可能需要停止服务器/站点才能删除临时文件。

要替换VS 2013中的设计器文件:

  1. 删除旧的* .designer.cs文件
  2. 选择* .aspx文件
  3. 从项目顶部下拉栏中选择“转换为Web应用程序”

一个简单/愚蠢的错误也导致类似的症状是,如果您复制aspx和aspx.cs文件并重命名它们,但忽略更新文件内的引用。

我遇到了这个问题,试图找到临时的asp.net目录,但清除没有帮助。 然后我意识到在复制文件以创建页面的新修改版本后,我没有更新CodeFile="Page.ascx.cs" 。 然后我试图添加一个控件并在PageModified.ascx.cs引用它,但一直说它不存在。

我在VS2012中这样做了:

  1. 打开page.aspx.designer.cs查找相同类型控件的控件声明(即LinkBut​​ton)
  2. 将其复制到文件末尾(在类花括号结束之前)
  3. 重命名控件变量以匹配控件的名称。

而已。

当您具有引用同一名称空间中的另一个usercontrol的usercontrol时,似乎也会发生这种情况。 如果将引用的用户控件移动到其他名称空间,问题就会消失

有时html中可能存在错误,例如两个具有相同Id的控件。 还要注意div和span标签。 这些都阻止了设计师的更新。 对于所有这些,请检查错误列表中的警告并进行修复。 你准备好了。 这解决了我的问题。

我只能手动在代码隐藏文件中添加控件声明来解决问题。 每次我尝试重新生成design.cs文件时,VS 2013都会编写相同的行而不会丢失控件。

声明需要添加到后面的代码中,而不是在design.cs中,因为每次更改.aspx时都会删除它。

只需添加声明就像对任何其他变量一样,如下所示:

 protected MyNameSpace.MyControl ControlName; 

只是添加到可能的解决方案列表中:我的标记文件中的这些行虽然看似有效,但显然导致与设计器文件断开连接:

 <%: Styles.Render("/my-file.css") %> <%: Scripts.Render("/my-file.js") %> 

我只是将它们注释掉,保存,并且设计的文件开始正常工作。 然后我取消注释两行,保存,并能够无问题地向页面添加新控件。 我发现这很奇怪,我仍然不清楚问题的最初原因是什么。 我只能推测这是一个Visual Studio错误。

重点是,可能存在导致问题的完全有效的代码,在这种情况下,可能的解决方案是在标记文件中对HTML部分进行注释,直到设计器文件自行解析,然后您可以撤消所有注释和恢复正常工作。