Вызовите функцию на стороне сервера, используя $ .ajax - PullRequest
2 голосов
/ 12 августа 2011

В конечном счете, я хотел бы отправить значение серверу нажатием кнопки и запросить мою БД. На данный момент у меня возникают проблемы с использованием jquery.ajax для вызова функции на стороне сервера. Вот мой код:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="ajax.aspx.cs" Inherits="WebApplication1.ajax" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript" src="/Scripts/jquery-1.6.2.min.js"></script>
<script language="Javascript" type="text/javascript">
    if (jQuery) { alert("jQuery loaded"); }

    function send() 
    {
        $.ajax(
            {
                type: "get",
                url: "ajax.aspx/Test",
                data: { name: 'ok' },
                success: function (result) { alert("successful!"); }
            })
    }

  </script>
  <input type="button" runat="server" value="TryMe" onclick="send()" />
</asp:Content>

[WebMethod]
    [System.Web.Script.Services.ScriptMethod]
    public static string Test(string sendData)
    {
        return String.Format("Hello {0}", sendData);
    }

Ответы [ 2 ]

5 голосов
/ 12 августа 2011

http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/ эта ссылка может быть полезной

РЕДАКТИРОВАТЬ: ваш вызов ajax должен выглядеть следующим образом:

 $.ajax(
            {
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "ajax.aspx/Test",
                data: "{ sendData: 'ok' }",
                success: function (result) { alert("successful!"); }
            })
1 голос
/ 12 августа 2011

Есть пара вещей, которые не совсем корректны:

  • Вы должны поместить свои данные в кавычки
  • , а имя участника должно совпадать с именем сети.параметр метода
  • значение для sendData должно быть в двойных кавычках
  • Вы должны добавить contentType и dataType

Полный пример:

function send() {
    $.ajax({
        type: "POST",
        url: "ajax.aspx/Test",
        data: '{ sendData: "ok" }',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) { alert("successful!" + result.d); }
    });
}

Этот код работает для меня.

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