Donnie N.I Ответов: 0

Как я могу вызвать метод класса .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

Большое спасибо, Ричард. Я пойду с веб-сервисом.

0 Ответов