正如标题所示,我最近将包含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
有什么我可以做错的?谢谢!
答案 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);