更新了ASP.NET 3.5到4.0 - > Sys.WebForms.PageRequestManager未定义

时间:2012-01-04 10:13:01

标签: asp.net .net asp.net-ajax updatepanel

正如标题所示,我最近将包含UpdatePanels和类似AJAX技术的ASP.NET 3.5应用程序更新到ASP.NET 4.0。不幸的是,UpdatePanels不再工作,整页回发使它全部向南。

的Web.config文件

 <?xml version="1.0"?>
 <configuration>
    <configSections>
        <section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling"/>
        <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging"/>
        <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data"/>
    </configSections>
    <system.net>
        <mailSettings>
            <smtp>
                <network host="localhost"/>
            </smtp>
        </mailSettings>
    </system.net>
    <system.web>
        <!--
             The <authentication> section enables configuration 
             of the security authentication mode used by 
             ASP.NET to identify an incoming user. 
         -->
        <authentication mode="Forms">
            <forms loginUrl="~/Login.aspx" name=".ASPXFORMSAUTH" defaultUrl="~/Administration/SystemEvents.aspx"/>
        </authentication>
        <!--
             The <customErrors> section enables configuration 
             of what to do if/when an unhandled error occurs 
             during the execution of a request. Specifically, 
             it enables developers to configure html error pages 
             to be displayed in place of a error stack trace. -->
        <customErrors mode="RemoteOnly" defaultRedirect="~/Error.aspx">
            <error statusCode="401" redirect="~/Unauthorized.aspx"/>
        </customErrors>
        <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/></system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
    </system.webServer>
 </configuration>

在Chrome中执行时出现Javascript错误:

Uncaught TypeError: Object function Function() { [native code] } has no method '_registerScript'
Uncaught TypeError: Cannot read property 'PageRequestManager' of undefined

有什么我可以做错的?谢谢!

4 个答案:

答案 0 :(得分:4)

我最近遇到了麻烦,因为我正在更新一个较旧的项目并按照上面的步骤操作,但它仍然给我同样的错误。我发现我需要更新修复它的web.config文件中的一行。

我改变了:

<xhtmlConformance mode="Legacy"/>

为:

<xhtmlConformance mode="Transitional"/>

答案 1 :(得分:3)

在ScriptManager中设置EnablePartialRendering="false"

答案 2 :(得分:0)

...我自己通过替换UpdatePanel并删除脚本管理器来解决它。

答案 3 :(得分:0)

我知道这篇文章很老,但是我没有解决此问题的方法。因此,我认为添加另一种方法也不错。 我尝试过

  

在ScriptManager中设置EnablePartialRendering =“ false”

,它可以正常工作,但随后每次单击都完全加载了我不想要的页面。  所以我要做的就是在Page_Load()中添加一行。 btnexport是按钮ID。

list

我首先在回发之外尝试了它,但是我的要求是即使在更新面板中的每次下拉单击之后也要导出,因此该按钮无法正常工作。 然后当我将其放入回发中时,瞧!它像魅力一样运作。 因此,您可以根据需要将其放在回发的内部或内部。

OR

另一个解决方案-您可以做到这一点-

您可能忘记像我一样在asp:updatepanel中添加触发器。 将此添加到updatepanel和里面吧!

ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnexport);