编辑:抱歉,我应该指出我已经尝试过:
关闭和重新打开所有文件和Visual Studio 对页面上的runat="server"控件进行更改 删除并重新添加页面指令
如果你打开.aspx文件并在设计视图和HTML视图之间切换,然后返回,它会提示VS检查控件并添加任何缺失的控件到设计器文件中。
在VS2013-15中,在项目菜单下有一个转换为Web应用程序命令。在VS2013之前,此选项在as(c/p)x文件的右键上下文菜单中可用。执行此操作后,您应该会看到现在有一个*.Designer.cs文件可用,并且设计HTML中的控件将可用于您的控件。
注意:不应在调试模式下执行此操作,因为在调试过程中并非所有内容都会“重新编译”。
有些人报告说通过(备份.designer.cs文件然后)删除.designer.cs文件也可以成功。您需要用相同名称创建一个空文件。
这个答案有许多评论,补充了如何最好地重新创建designer.cs文件的技巧。
我找到了一个可行的解决方案,虽然我并不是很喜欢它。我不得不删除.designer.cs文件,然后重新创建一个同名的空文件。当我再次保存aspx文件时,设计师文件被重新生成。
靠谱吗!
重新编译。
<name>.aspx.designer.vb
的空文件才能让它工作。 - Tahir Hassan最近我发现自己遇到了同样的问题。Visual Studio 2010 拒绝更新设计器文件。
事实证明,如果一个页面使用 CodeFile(运行时编译)而不是 CodeBehind(DLL),VS 就不会修改设计器文件。无论你多少次关闭 VS、重新加载项目、重新创建控件或者修改文件,在 CodeFile 页面上什么都不会促使 VS 重新生成设计器文件。似乎它不会为 CodeFile 页面创建设计器文件,但要求它存在。
我将其更改为 CodeBehind 并保存该页面。设计器文件立即更新。然后我再把它改回去,一切都还好。这种行为似乎是 VS 2010 / .NET 4.0 中新增的,因为默认情况下,VS 2008 不会出现这种问题。
就是这部分:
<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>
将CodeFile改为CodeBehind,保存,然后撤销更改。
还有一种可能性: 你的.aspx文件中可能存在错误,这将导致Visual Studio无法重新生成设计工具。
如果您切换到设计视图,它会显示控件无法呈现。修复控件(在我的情况下,是属性中多余的引号)并重新编译应该可以重新生成设计工具。
<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />
to
<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />
我知道的唯一方法是删除设计文件,然后将其转换为Web应用程序。 但是当你这样做时,通常会弹出一个错误提示,说明为什么它没有自动重新生成,这通常是因为页面头部中没有声明控件引用。
int Id
属性,在C#中编译得很好,因为它是区分大小写的。但是aspx页面中的ID="ControlName"
试图执行Id = "ControlName"
。转换为Web应用程序
会显示类似于ControlName无法转换为Int32
的消息。 - Nelson Rothermel将其转换为Web应用程序对我没有起作用。
删除 designer.cs 并粘贴一个空白的 designer.cs 也无效。
但是,这个方法有效:
完成。新的 designer.cs 已生成。 :)