#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»), чтобы убедиться, что ваш метод выполнен. Не очень элегантно, но это сработает.