Как я могу вызвать метод класса .NET из jquery
Мне нужна помощь. Я знаю, как вызвать метод страницы/метод веб-сервиса с помощью jQuery ajax, но я хотел бы знать, как это сделать .Net-метода класса, чтобы избежать копирования кодов из обработчика/метод или способ обслуживания.
У меня есть класс, объявленный со статическими методами, все они украшены атрибутами webmethod. Я пробовал это сделать, но получаю ошибку 500. Я знаю, что можно вызвать метод действия в MVC, но я работаю над проектом webforms и хотел бы узнать, как это сделать в webforms.
Любая помощь будет высоко оценена.
Спасибо
Что я уже пробовал:
Класс .Net
<pre> using System.Web.Services; using System.Web.Script.Services; public class Container { public int Name { get; set; } public int Size {get;set;} [WebMethod()] [ScriptMethod()] public static bool Exists(string ContainerName) { // Check stuff here and return true or false; return true; } }
Код Jquery
$(document).ready(function () { $('#testModel').click(function (e) { // alert("calling web service now"); $.ajax({ url: 'Models/Container/Exists', method: 'post', contentType: 'application/json; charset=utf-8;', data: '{ "ContainerName": "xxxx" }', success: function (r) { alert(r.d); }, error: function (err) { alert(err.status + "\nScriptCall Failed"); } }); }); });
Bryian Tan
Это веб-форма? URL-адрес должен быть Container. aspx / Exists . Предполагая, что название страницы-это контейнер.aspx-файл
Donnie N.I
Да, это веб-формы. У меня есть класс, объявленный внутри папки "Models" под названием Container, и я пытаюсь вызвать статический метод Exists, чтобы спасти меня от копирования кода в обработчик или метод страницы.
Richard Deeming
АФАИК, ты не можешь этого сделать. ASP.NET не имеет возможности отобразить путь Models/Container
для вашего класса, потому что это не HTTP-обработчик.
Donnie N.I
Хорошо. Спасибо... Итак, лучший способ-это поместить в HTTP-обработчик или метод страницы? Для меня это дублирование кода, и я так стараюсь избегать копирования кодов...
Richard Deeming
Я был бы склонен использовать веб-служба[^].
Вам не нужно дублировать код. Ваши методы веб-службы могут просто вызывать существующие методы.
Donnie N.I
Большое спасибо, Ричард. Я пойду с веб-сервисом.