当我在用户控件上拖放UpdatePanel时,我在用户控件的自动生成文件中获取此变量:
/// <summary>
/// UpdatePanel1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.UpdatePanel UpdatePanel1;
但是,UpdatePanel位于完全不同的命名空间中:
/// <summary>
/// UpdatePanel1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel UpdatePanel1;
我在我的web.config中的assembly config部分下面有这个配置条目:
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
为什么这种行为发生在我身上?
答案 0 :(得分:3)
1)每次修改ascx文件时,都要将System.Web.UI.WebControls.WebParts.UpdatePanel
重置回System.Web.UI.UpdatePanel
(对于ScriptManager也是如此)。推荐,但是单调乏味。
2)我发现在ASCX文件顶部使用Register命令似乎正确地覆盖了设计者的默认行为,为3.5控件选择4.0位置(我认为这是潜在的问题,它是一个4.0设计师向后兼容3.5)。推荐,但在使用ASP添加控件时要小心:
<%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web"%>
...
<asp:ScriptManager runat="server" ID="smLocationsMap" />
3)您可以在bin文件夹中包含system.web.dll
和system.web.design.dll
(安全/其他问题)。不推荐。