2

当我将 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 中有此配置条目:

  <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

为什么这种行为会发生在我身上?

4

1 回答 1

4

1)每次修改 ascx 文件时都将其重置System.Web.UI.WebControls.WebParts.UpdatePanel为(与 ScriptManager 相同)。推荐,但很乏味。System.Web.UI.UpdatePanel

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不建议。

博客链接

于 2014-04-18T23:32:24.237 回答