我有一个在 Visual Studio 2005 中创建的旧版 Web 项目,该项目最近已升级到 Visual Studio 2010。它针对 .net 2.0 构建
它包含一个 ascx 用户控件,其中包含一个看起来像
<select runat="server" id="foo">
<option runat="server" id="bar" value="1">1</option>
</select>
原始设计器代码如下所示:
protected global::System.Web.UI.WebControls.ListItem bar;
每当我编辑 .ascx 文件中的任何内容(甚至添加换行符)时,设计器都会自动更新为如下所示:
protected global::System.Web.UI.HtmlControls.HtmlGenericControl bar;
此时,页面停止工作并为我提供以下运行时错误:
说明:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息并适当地修改您的源文件。
解析器错误消息:基类包含字段“bar”,但其类型 (System.Web.UI.HtmlControls.HtmlGenericControl) 与控件类型 (System.Web.UI.WebControls.ListItem) 不兼容。
然后我必须手动编辑 ascx.designer.cs 文件以修复 Visual Studio 造成的损坏。
除了将所有遗留选项选择片段重写为 asp listcontrol 对象之外,我能做些什么来阻止 Visual Studio 吃掉我的设计器文件?