Ответ.Перенаправление ведет себя иначе, чем в UpdatePanel
Везде в моем веб-приложении я использую такие редиректы:
Response.Redirect("~/SearchResults.aspx", true);
И это всегда приводит меня к нужной странице. http://localhost/myapp/SearchResults.aspx
Но теперь я делаю это в событии onclick кнопки, которая находится в ASP.NET UpdatePanel и он пытается привести меня по следующему адресу: http://localhost/myapp/%2fmyapp%2fSearchResults.aspx
У кого-нибудь есть идея, как это исправить?4 ответа:
Наконец я нашел реальный ответ на эту проблему. Оказалось, что это было не то исправление, которое я опубликовал раньше. Хотя это был хороший обходной путь в то время, реальная проблема заключалась в том, что CMS, в которой я работаю, приносит устаревшую версию MicrosoftAjaxWebForms.js . Обновлять этот сценарий, решить все мои асинхронной обратной передачи-перенаправление проблемы.
Ниже приведен обходной путь в случае, если вам просто нужна кнопка, которая делает полную обратную передачу и перенаправление из обновления панель.
<asp:PostBackTrigger ControlID="btnRedirectButton" />
Я не думаю, что это поддерживается по умолчанию без опции 2 в блоге ниже. Однако есть несколько решений.
Http://aspdotnetcodebook.blogspot.com/2008/03/using-responseredirect-in-aspnet-ajax.html
Также я читал, что вы можете поместить туда кнопку, окруженную элементом , и в вашем button_click сделать перенаправление, но никогда не пробовал этого метод:
Ответ.Редирект должен работать в панели обновления, это одно из известных исключений.
Однако, время было, по крайней мере, что это не будет работать, если у вас нет блока, подобного этому в вашей сети.конфигурация:
<httpModules> <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </httpModules>
Я не использую ASP.Net ajax больше нет, и я нахожусь на своем Mac, поэтому я не могу проверить, правильная это версия или нет, но это должно, надеюсь, поставить вас на правильный путь.
Edit: эта ссылка имеет 2 других возможных варианта решения:
Http://aspdotnetcodebook.blogspot.com/2008/03/using-responseredirect-in-aspnet-ajax.html
Я пробовал все вышеперечисленные предложения, но безуспешно. Проблема все еще существует, так что теперь я обошел ее, взяв кнопку, которая делает перенаправление из панели обновления. Подумав об этом некоторое время, я пришел к выводу, что это самое логичное место и для кнопки, потому что она вызывает не обновление панели, а обновление всей страницы.