Вы можете использовать встроенный ASP.NET AJAX.
Вариант 1 - использовать веб-сервис (если вы хотите, чтобы функциональность использовалась повторно):
- создать веб-сервис (.asmx) с атрибутом [ScriptService],
- добавить на свою страницу и добавить веб-сервис в свою коллекцию служб,
- использовать прокси JavaScript, сгенерированный ScriptManager на вашей странице.
Вариант 2 - использовать методы страницы (если вы хотите функциональность на одной странице без создания веб-службы):
- определить статические методы на вашей странице, добавить к ним атрибут [WebMethod],
- добавить ScriptManager с EnablePageMethods = "true",
- использовать объект PageMethods для вызова этих методов из JavaScript.
В любом случае для передачи данных будет использоваться JSON.
Вот обширный учебник с некоторыми примерами кода.
Однако ASP.NET AJAX часто обвиняют в неэффективности - например, JS, который он генерирует, имеет тенденцию быть довольно большим. Поэтому, если вас интересует производительность, вам нужно тщательно ее протестировать.
Вы также можете взглянуть на эту тему: .NET AJAX Вызовы в ASMX, ASPX или ASHX?