2009-08-31 3 views
1

У меня есть простая функция в javascript на моей странице asp.net, которая записывает некоторые данные в скрытое поле на странице. Чтобы получить эти данные, форма должна быть отправлена ​​обратно на сервер. Проблема в том, что отправка формы приводит к перезагрузке страницы, и я не хочу, чтобы мой клиент испытывал ненужную обратную передачу. Поэтому я предполагаю, что это можно сделать с помощью AJAX - возможно ли, что только часть моей страницы выполнит javascript и незримо отправит данные на сервер без перезагрузки всей страницы? И если да, не могли бы вы объяснить, как или, по крайней мере, предоставить какие-либо источники, где я мог бы найти детали?Невидимая отправка данных обратно на сервер - без генерации обратной передачи

ответ

4

Да, это возможно, вы в основном выполнили бы запрос ajax в своей функции javascript, не перезагружая страницу или что-то еще. это стандартная практика ajax.

Я бы заглянул в JQuery, это библиотека javascript, которая обертывает множество функций javascript и упрощает написание кода специально для ajax.

проверка http://docs.jquery.com/Ajax для справки.

+3

Добавление к этому ответу: Я рекомендую использовать .ashx (WebHandler файл) для обработки вызова Ajax , Вот учебник, который я нашел с помощью jQuery и файла ashx: http://www.mikesdotnetting.com/Article/104/Many-ways-to-communicate-with-your-database-using-jQuery-AJAX-and-ASP .СЕТЬ –

2

Вы на правильном пути, это действительно выполнено с использованием ajax. Поскольку вы использовали термин postback, я предполагаю, что вы используете веб-формы asp.net. Существует сопровождающая библиотека asp.net Ajax, который вы можете узнать больше о в http://www.asp.net/ajax/ вы можете начать обучение, как использовать его в http://www.asp.net/learn/ajax/tutorial-01-cs.aspx

так же, как WebForms является абстракция HTTP так asp.net Ajax Аякса. Хотя это, безусловно, облегчает некоторые вещи, он также может сделать другие вещи, которые не предполагаются авторами более сложными, тогда они должны быть. Для более продвинутых ussages вы можете проверить jquery на http://jquery.com/, который отлично сочетается с asp.net MVC. Также есть дополнительные данные, образцы и библиотеки в общедоступном домене для jquery, а затем для asp.net ajax. Но asp.net ajax должен получить вас на вашем пути быстрее всего, если у вас уже есть базовая база веб-форм.

2

Если вы используете ASP.NET, они упростили работу с ajax - элементы управления Ajax можно добавить в VS 2005, а элементы управления - VS2008.

Отъезд http://www.asp.net/ajax/ для инструкций/видеороликов, в которых подробно описано, как использовать Ajax с ASP.NET. Простейшей возможной настройкой является установка UpdatePanel вокруг вашего содержимого в разметке, и он будет автоматически обновлять асинхронно на любом контенте внутри UpdatePanel без обратной передачи.

0

Используйте javascript-библиотеку. Вы можете добиться того, что вы хотите использовать, например, прототип (http://prototypejs.org) библиотека с минимальным кодированием, как это:

var serialized = $("formId").serialize(true); 
new Ajax.Request(
    "your/url/here", 
    method: "post", 
    parameters: serialized, 
    onSuccess: function(response) {alert("data sent");}, 
    onFailure: function(response) { 
    var msg = "Server error on AJAX request: "; 
    msg += response.status; 
    msg += " " + response.statusText; 
    alert(msg); 
    }, 
    onException: function(response, stacktrace) { 
    var msg = "Exception in AJAX callback\n"; 
    for (var i in stacktrace) { 
     msg += i + " = " + stacktrace[i] + "\n"; 
    } 
    alert(msg); 
    } 
); 
Смежные вопросы