2009-07-31 3 views
0

У меня есть страница с несколькими пользовательскими элементами управления, которые используют Ajax. Когда я пытаюсь сделать response.redirect с этой страницы, Ajax перехватывает вызов и не разрешает перенаправление.Response.redirect не работает с элементами управления Ajax

Как я могу сделать response.redirect со страницы Ajax?

Благодаря ...

+3

Дублированный Http: // StackOverflow .com/вопросы/1215177 /. –

ответ

0

Насколько контроль за действиями AJAX у вас есть в пользовательских элементов управления? Если вы можете изменить клиентскую сторону, самое простое - вернуть объект JSON, который вы можете проанализировать и отправить URL-адрес, который вы хотите перенаправить в качестве данных. Как только вы получите данные на клиенте, просто установите window.location.href в url.

С JQuery это будет выглядеть примерно так:

$.ajax({ 
    url: '/some/url', 
    dataType: 'json', 
    type: 'post', 
    data: $('form').serialize(), 
    success: function(data) { 
     if (data.Redirect) { 
      window.location.href = data.Redirect; 
     } 
     else { 
     ...handle other responses... 
     } 
    } 
    ... more options... 
}); 
+0

Весь мой код находится в C#, ASP.NET 2.0. Я не знаком с JSON. –

+0

Ознакомьтесь с этой статьей в блоге о создании JSON с JavaScriptSerializer: http://blogs.msdn.com/rakkimk/archive/2009/01/30/asp-net-json-serialization-and-deserialization.aspx. Вам просто нужно определить объект, который вам нужно отправить назад, а затем использовать Response.Write в сериализованной версии. – tvanfosson

0

как я уже говорил в другой вопрос:

добавить это к вашему web.config

<httpModules> 
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
</httpModules> 
+0

Этот код уже находится в моем Web.config –

Смежные вопросы