Обновлен ASP.NET 3.5 до 4.0 -> Sys.WebForms.PageRequestManager не определен - PullRequest
5 голосов
/ 04 января 2012

Как видно из заголовка, я недавно обновил приложение ASP.NET 3.5, содержащее UpdatePanels и технологии AJAX, аналогичные 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>

Ошибка JavaScript при выполнении в Chrome:

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

Что я мог сделать не так? Спасибо!

Ответы [ 4 ]

4 голосов
/ 13 августа 2012

У меня недавно были проблемы с этим, когда я обновлял старый проект и следовал вашим шагам выше, но он все еще выдавал мне ту же ошибку.Я обнаружил, что мне нужно обновить строку в файле web.config, в которой это исправлено.

Я изменил:

<xhtmlConformance mode="Legacy"/>

на:

<xhtmlConformance mode="Transitional"/>
3 голосов
/ 18 мая 2016

Набор EnablePartialRendering="false" в ScriptManager

0 голосов
/ 10 июля 2019

Я знаю, что этот пост очень старый, но способ, которым я решил эту проблему, здесь не приводится. Поэтому я подумал, что неплохо добавить еще один способ. Я пытался сделать

Set EnablePartialRendering = "false" в ScriptManager

и это сработало, но затем для каждого клика страница загружалась полностью, чего я не хотел. Итак, я только что добавил строку в Page_Load (). btnexport - это идентификатор кнопки.

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

Сначала я попробовал его вне постбэка, но мои требования заключались в экспорте даже после каждого выпадающего щелчка, который был на панели обновления, поэтому кнопка не работала для этого. затем, когда я положил его в постбэк ... вуаля !! Оно работало завораживающе. Таким образом, вы можете поместить его снаружи или внутри постбэка в соответствии с вашими требованиями.

OR

Еще одно решение - Вы можете сделать это -

Возможно, вы забыли добавить триггер внутри asp: updatepanel, как я. Добавьте это внутри панели обновления и вуаля !!

<Triggers>
      <asp:PostBackTrigger ControlID="btnexport" />
</Triggers>
0 голосов
/ 04 января 2012

... и я решил это самостоятельно, заменив UpdatePanels и удалив диспетчеры сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...