Asp.net 如何强制Visual Studio为aspx/ascx文件重新生成.designer文件?
有时,当我编辑页面或控件时,.designer文件会停止使用我放在页面上的新控件进行更新。我不确定是什么导致了这种情况,但我想知道是否有任何方法可以强制Visual Studio重新生成.designer文件。我正在使用VisualStudio2008 编辑:对不起,我应该注意到我已经尝试过了:Asp.net 如何强制Visual Studio为aspx/ascx文件重新生成.designer文件?,asp.net,visual-studio,visual-studio-2008,Asp.net,Visual Studio,Visual Studio 2008,有时,当我编辑页面或控件时,.designer文件会停止使用我放在页面上的新控件进行更新。我不确定是什么导致了这种情况,但我想知道是否有任何方法可以强制Visual Studio重新生成.designer文件。我正在使用VisualStudio2008 编辑:对不起,我应该注意到我已经尝试过了: 关闭并重新打开所有文件&Visual Studio 对页面上的runat=“server”控件进行更改 删除并重新添加页面指令(&R) 如果打开.aspx文件并在设计视图和html视图之间切换 bac
- 关闭并重新打开所有文件&Visual Studio
- 对页面上的runat=“server”控件进行更改
- 删除并重新添加页面指令(&R)
如果您对VS2008有不同的问题,那么我也无能为力。我找到了一个可行的解决方案,尽管我并不喜欢它。我必须删除.designer.cs文件,然后重新创建一个同名的空文件。当我返回并再次保存aspx文件时,设计器文件被重新生成
狡猾 我知道的唯一方法是删除设计器文件,然后转换为web应用程序。但是,当您执行此操作时,它通常会弹出错误,至于为什么它没有首先自动重新生成,它通常是一个未在页面头部声明的控件引用。还有一种可能性:您的.aspx文件中可能有错误,不允许Visual Studio重新生成设计器 如果切换到“设计”视图,它将显示控件无法渲染。修复控件(在我的例子中,它是属性中的一个额外引用)并重新编译应该会重新生成设计器。
- 选择设计器文件中的“全部”,删除文件中的所有内容,保留为空,然后保存
- 在ASPX/ASCX文件中选择“全部”,剪切所有内容,然后重新粘贴
- 设计器文件应该已重新生成代码
- 在aspx/ascx文件的编辑器中选择前面的所有代码(html标记等)
- 切
- 保存
- 粘贴
- 保存
重新编译。删除designer.cs文件,然后右键单击.aspx文件并选择“转换为Web应用程序”。如果控件声明存在问题,例如标记格式不正确,则会收到错误消息,并且需要更正格式错误的标记,然后visual studio才能成功重新生成设计器文件
在我的例子中,在这一点上,我发现问题在于我声明了一个按钮控件,它不在带有runat=“server”属性的表单标记中。我的经验是,如果您想在本文中这样做,就像上面所述
您的标记文件(aspx/ascx)必须包含codebhind=“MyPage.aspx.cs”属性,否则它将无法工作。我在博客上写过这件事。我经常发现复制/粘贴导致了我的这种行为。大多数情况下可以通过编辑服务器控件的ID来解决(只需添加一个字符,然后删除它) 还要记住,控件内部的东西(如中继器)在设计器文件中不可见
是的,在某些情况下,您需要执行上面列出的删除文件魔术-但名称更改解决方案在大多数情况下都会起作用。以下是我的经验教训, 选择网站文件夹,在解决方案资源管理器中单击鼠标右键,为生成设计器文件的所有aspx文件选择“转换为Web应用程序”
Sameer这是IDE中的一个bug;我从2003年开始就看过了。不过解决办法很简单 保存您的文件。完全退出IDE(确保进程停止,任务管理器。)
重新打开解决方案,弄脏标记,保存。已修复。我有两个问题。。。过时的AJAXControlkit-删除旧dll,从工具箱中删除旧控件,下载新版本,加载工具箱,并在页面上拖放新控件(请参阅) 我的标签控件中也有拼写错误(使用了“class”而不是“cssclass”)
Ta当您在设计视图中时,右键单击屏幕并点击刷新 我最近发现我也有同样的问题。Visual Studio 2010拒绝更新设计器文件 事实证明,对于使用CodeFile(页面运行)而不是CodeBehind(DLL)的页面,VS不会修改设计器文件。无论您关闭VS、重新加载项目、重新创建控件或修改文件多少次,这都是正确的。没有任何东西会提示VS重新生成设计器。这就好像它没有为代码文件页面创建设计器文件,但需要它在那里 我把它改成CodeBehind并保存了
<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>
<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />
<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />
namespace MyProjects.Finance.Pages
{
public partial class FinanceSubmission : WebPartPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
// more code
}
}
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="FinanceSubmission.aspx.cs"
Inherits="MyProjects.Finance.Pages.FinanceSubmission"
MasterPageFile="~masterurl/default.master" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="yourControl.ascx.cs" Inherits="yourControl.yourControl" %>