Как вызвать нестатический метод из кода asp.net за использование jQuery - PullRequest
3 голосов
/ 15 февраля 2012

В веб-форме у меня есть следующая настройка jQuery для вызова метода из моего файла кода.

 <script src="js/jquery-1.7.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(function () {
            $("#newBtn").click(function () {
                $.ajax({
                    type: "POST",
                    url: "AJAXCaller.aspx/GetTimer",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    async: true,
                    cache: false

                });
                return false;
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <a href="#" class="link1" runat="server">Click here</a><br /><br />
    <asp:LinkButton ID="newBtn" runat="server" Text="ASP Link" />
    <asp:Label ID="time_lbl" runat="server" />
    </div>
    </form>
</body>

А внутри кода у меня есть следующее:

[WebMethod]
        public void GetTimer()
        {
            time_lbl.Text = DateTime.Now.ToString();
        }

Я понимаю, что в настоящее время это не работает в текущем синтаксисе.

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

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

Заранее спасибо за любые предложения.

1 Ответ

2 голосов
/ 15 февраля 2012

Это вообще невозможно, потому что вы не можете обновить любое поле в пользовательском интерфейсе со стороны сервера.

Вместо использования WebMethod на странице aspx используйте вместо этого веб-сервисы Asp.Net для написания веб-методов, которые можно вызыватьиспользование метода ajax.

ajax имеет успешный обратный вызов, в котором вы можете получить ответ службы и затем обновить поле пользовательского интерфейса, обратившись к нему с помощью соответствующего селектора.

Например

    $(function () {
        $("#newBtn").click(function () {
            $.ajax({
                type: "POST",
                url: "AJAXCaller.asmx/GetTimer",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: true,
                cache: false,
                success: function(data){
                     $("#ClientIdOftime_lbl").text(data);
                }

            });
            return false;
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...