JQuery Ajax WebMethod возвращает объект - PullRequest
4 голосов
/ 14 января 2011

У меня есть веб-метод в моем C #, который вызывается с помощью метода jquery ajax.Веб-метод должен вернуть объект обратно в Jquery, который будет использоваться для заполнения.

Я попытался вернуть объект JsonResult, реальный объект, и, похоже, ничего не работает!Я не использую MVC (к сожалению).Есть ли способ вернуть объект из моего веб-метода, который может быть использован моим методом AJAX?

вот ссылка на мой метод JQuery AJAX

http://pastebin.com/tRSaY5rGhttp://pastebin.com/WajXyPMM

Спасибо !!

1 Ответ

5 голосов
/ 14 января 2011

Я использовал JQuery для получения результатов из базы данных и заполнения UL на странице элементами.Это то, что вы искали?

Javascript


        //Set up Approve Requests Page
        $("#approveRequests").bind('pageAnimationEnd', function () { getRequestList(); return false; });

        //Gets the list of requests
        function getRequestList() {
            // call server-side webmethod using jQuery
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "Index.aspx/GetOrdersForApproving",
                data: "{ }", // send an empty object for calls with no parameters
                dataType: "json",
                success: displayRequests,
                failure: reportError
            });
        }

        //displays the requests in the ul
        function displayRequests(result) {
            // ASP.NET encapsulates JSON responses in a property "d"
            if (result.hasOwnProperty("d")) { result = result.d; }
            // iterate through player list and add info to the markup
            var ul = $("#requestsForApproval");
            for (i = 0; i <h2>" + result[i].Supplier + "</h2>," + result[i].Description + "," + result[i].Value + "</li>");
                var li = $(""
            + "<h3>" + result[i].OrderID + " - " + result[i].Supplier + "</h3>"
        + ""
        + ""
            + result[i].Description
        + ""
        + " "
            + ""
                + ""
                    + ""
                         + "Quant: " + result[i].Quantity
                    + ""
                    + ""
                        + "Price: " + result[i].UnitPrice
                    + ""
                    + ""
                        + "Total: " + result[i].Value
                    + ""
                + ""
            + ""
        + ""
          + " "
            + "<ul>Approve</li>"
            + "Reject</li></ul>"
        + ""
        + ""
        + "</li>");
                ul.append(li);
            }

ASPX


        /// 
        /// Gets a list of Request Lines
        /// 
        /// List of order lines
        [WebMethod]
        public static List GetOrdersForApproving()
        {
            try
            {
                List Lines = new List();
                foreach (Objects.Database.OrderLine oOrderLine in Objects.Database.OrderLine.GetLinesWaitingFor(StaticStore.CurrentUser.UserID, int.MinValue))
                {
                    Lines.Add(new iOrderLine(oOrderLine));
                }

                return Lines;
            }
            catch (Exception)
            {
                throw;
            }
        }

Бит, который я пытался заставить работать, был:

if (result.hasOwnProperty("d")) { result = result.d; }
...