Сообщение Asychnronous Отправить Asp.net

Я пытаюсь узнать, как работает AJAX под капотом. Скажем, у меня есть форма asp.net с кнопкой на ней. Затем я имею базу данных с одним столбцом DateTime. Когда я нажимаю кнопку в форме asp.net, я хочу вставить столбец в базу данных с текущим временем.

У меня будет обработчик событий С#:

protected void btnButton_OnClick(Eventargs e, object sender)
{
    //insert DateTime.now into DB
    //This part is easy
}

То, что я хотел бы сделать в самой форме, - это нажать кнопку NOT, чтобы перезагрузить форму. Он просто отправит сообщение на сервер; нет причин для перезагрузки страницы. Какими способами я мог бы это сделать?

  • Я немного искал структуру AJAX и, похоже, это можно было сделать на панели обновления, но страница все равно перезагрузилась бы, это было бы менее заметно для пользователя.

  • Используйте вызов __doPostBack в javascript. Я понятия не имею, как это работает.

Ответ 1

Похоже, вы частично относитесь к Microsoft, предоставляя библиотеки javascript, и это нормально. UpdatePanel и тому подобное имеют свое место, но я обнаружил, что когда вам нужно делать что-то очень простое и простое, как то, что вы описываете, проще и чище сделать это с помощью прямого вызова ресурса сервера из Javascript,

Существует много способов сделать это, но мне нравится использовать метод jquery $.ajax() для вызова методов webservice (или действия MVC в последнее время). Если вы захотите изучить несколько несколько разных технологий здесь, сообщение в блоге, это даст вам представление о том, о чем я говорю.

Ответ 2

ASP.NET Ajax имеет две основные части:

  • серверные элементы управления на основе
  • инфраструктура клиентской стороны (которая называется Microsoft Ajax)

С первым вы решили использовать элемент управления UpdatePanel. Тем не менее, он по-прежнему отправляет много ненужных данных по проводу, как и полное представление, ваши страницы соответствуют почти всему жизненному циклу страницы, как при обычной обратной передаче. В основном я рекомендую не использовать это в производственном коде.

Вторая часть - это ajax-библиотека, основанная на чистом javascript с прикосновением к Microsoft. Он имеет сходство с жизненным циклом страницы, таким как функция pageLoad и т.д., И его довольно легко изучить.

__ doPostBack

Эта функция вставлена, когда вы размещаете на своей странице определенные элементы управления сервером, как элемент управления LinkButton. Вы можете вызывать это непосредственно из javascript, но знаете, что это приведет к полному обратному сообщению страницы, поэтому, если вы хотите избежать этого, не переходите к этому пути.

В течение последних двух лет я стал большим поклонником jQuery, который хорошо работает вместе с ASP.NET и ASP.NET MVC.

Я предлагаю вам прочитать эту прекрасную статью, чтобы получить дополнительную информацию об этом: Использование jQuery с ASP.NET. Часть 2. Создание обратного вызова AJAX для ASP. NET.
Сам jQuery также был принят и одобрен Microsoft. Я настоятельно рекомендую вам взглянуть на нее и ее силу.