首页 > 解决方案 > 用户控件 RegisterScriptDescriptors 循环参考

问题描述

我不确定为什么在尝试注册脚本描述符时遇到循环引用。这是我的用户控件代码:

    protected void Page_Load(object sender, EventArgs eventArguments)
    {
    }

    protected override void OnPreRender(EventArgs eventArguments)
    {
        ScriptManager.GetCurrent(Page).RegisterScriptControl(this);
        base.OnPreRender(eventArguments);
    }

    protected override void Render(HtmlTextWriter htmlWriter)
    {
        ScriptManager.GetCurrent(Page).RegisterScriptDescriptors(this);
        base.Render(htmlWriter);
    }

我在 RegisterScriptDescriptors 上收到异常(System.InvalidOperationException:在序列化“ASP.global_asax”类型的对象时检测到循环引用。)。

这是我的整个 Global.asax

<%@ Application Language="C#" %>
<%@ Import Namespace="System.Web.Optimization" %>
<%@ Import Namespace="System.Web.Routing" %>

<script runat="server">

void Application_Start(object sender, EventArgs e)
{
    StockPicker.BundleConfig.RegisterBundles(BundleTable.Bundles);
}

</script>

标签: c#.netuser-controls

解决方案


对不起,但我挣扎了一下后回答了。我在控件中使用了另一个用户控件,并且在 GetScriptDescriptors 方法中使用了该控件。这导致了循环引用。


推荐阅读