запустить серверный метод из jquery

#c# #jquery #asp.net #ajax

#c# #jquery #asp.net #ajax

Вопрос:

Я знаю метод, с помощью которого из jQuery с помощью ajax я могу вызвать WebMethod из файла aspx или asmx. Это нормально, но я могу разместить логику своего проекта только в файлах ascx.cs. Это специфическая CMS, и я ничего не могу с этим поделать.

Итак, мой вопрос основан на примере, описанном ниже:

Допустим, пользователь вошел в систему и просматривает статью. Один пользователь хочет пометить его как избранное, поэтому нажимает кнопку. На стороне сервера без обновления страницы должен быть запущен соответствующий метод, который добавит эту статью в избранное, а затем на стороне клиента появится предупреждение — «Успех».

Я не хочу, чтобы кто-либо писал код за меня для этого, это просто пример описания того, какой функциональности я хотел бы достичь и какую технологию использовать для этого.

Спасибо за помощь.

P.S. я использую ASP.Net 2.0

Комментарии:

1. Можем ли мы предположить, что у вас также есть полный доступ к aspx-файлам?

2. На вашем месте я бы попробовал преобразовать код в aspx.cs в метод, а затем использовать обработчик для вызова этого метода. или другой возможный способ — ввести маршрутизацию в ASP. Net, что, безусловно, не лучший способ сделать это, но он должен сработать.

3. У меня нет доступа к aspx-файлам. Я могу писать код только в файлах пользовательского управления. а затем с помощью CMS wmbed эти элементы управления на сайтах

Ответ №1:

Файлы ASCX недоступны напрямую с клиента (и, как таковые, не могут быть нацелены с помощью вызовов AJAX).

Если ваша логика действительно должна быть инкапсулирована в файл ASCX, вы можете добавить в свой ASPX точку входа WebMethod , которая вместо этого вызывает соответствующий метод ASCX. Однако вы, вероятно, столкнетесь с некоторыми трудностями, связанными с использованием веб-методов static , поэтому в конечном итоге вам может потребоваться небольшой рефакторинг, в зависимости от того, как сейчас структурирован ваш код.

Ответ №2:

Вы можете выполнить ajax-вызов удаленной страницы (с управлением ascx с помощью вашего серверного метода), а затем проанализировать выходные данные (например, поискать world «SUCCESS»), чтобы убедиться, что ваш метод выполнен. Не очень элегантно, но это сработает.