从aspx中的jQuery POST检索数据

时间:2017-04-06 09:33:47

标签: c# jquery asp.net

我正在尝试从jQuery POST获取数据字符串到aspx页面。但没有运气。

这是我的jQuery

Tue Dec 08 14:13:40 CST 2015
Sun Mar 18 02:49:58 CST 2012
17 Mar 2012 18:49:58 GMT
2012-3-18 2:49:58
2012-03-18T02:49:58+08:00

在aspx的开头我有这个

function namePerson() {
    $.ajax({
        type: "POST",
        url: "names.aspx",
        data: {name : "Anders"},
        beforeSend: function() {
            $("#ViewContainer").html("<img src='loading.gif' />");
            },
        success: function(msg){
            $("#ViewContainer").html(msg);
            }
    });
}

我可以看到'name'字符串是通过浏览器中的debug发送的。但我无法找回它。 我来自经典的ASP,正在尝试学习ASP.net C#。我找不到任何搜索结果来解释如何执行此操作。

非常感谢=)

4 个答案:

答案 0 :(得分:2)

function ShowCurrentTime() {
$.ajax({
    type: "POST",
    url: "CS.aspx/GetCurrentTime",
    data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: OnSuccess,
    failure: function(response) {
        alert(response.d);
    }
});
}

function OnSuccess(response) {
alert(response.d);
}

在C#-----

[System.Web.Services.WebMethod]
public static string GetCurrentTime(string name){
return "Hello " + name + Environment.NewLine + "The Current Time is: "
    + DateTime.Now.ToString();
}

答案 1 :(得分:0)

您应该使用WebService

[WebService, ScriptService]
public class WebService1 : WebService
{
    [WebMethod]
    public string names(string name)
    {
        return "Hello " + name;
    }
}

然后使用Javascript从客户端调用它。

function namePerson() {
    $.ajax({
        type: "POST",
        url: "WebService1.asmx/names",
        data: JSON.stringify({ name: "Anders" }),
        contentType: "application/json; charset=utf-8",
        beforeSend: function () {
            $("#ViewContainer").html("<img src='loading.gif' />");
        },
        success: function (msg) {
            $("#ViewContainer").html(msg.d);
            alert(msg.d);
        }
    });
}

请确保contentType: "application/json; charset=utf-8"存在,否则网络服务将使用XML进行响应。

此外,您应该使用done代替success

答案 2 :(得分:0)

您正在正确呼叫JQuery.AJAX。这行不正确。

url: "names.aspx",

我认为您尝试呼叫的网页names.aspx中可能有某种方法。考虑一下像names.aspx这样的页面,在该页面内(代码隐藏文件),你有一个根据提供的数据获取名称的方法,所以方法定义和声明就像

[WebMethod]
public void GetNames(string name)
{
        ...
}

你的JQuery AJAX调用网址就像

url: "names.aspx/GetNames",

希望它可以帮助您了解如何调用方法视图JQuery.AJAX

背后的代码

答案 3 :(得分:0)

如果您使用ASMX文件制作Web服务,请参阅
详细文章 Simple Asp.net jQuery ajax Example, C# WebMethod with sql database

同一页面上的ELSE CodeBehind如下所示

<强>代码隐藏: 在names.aspx页面上添加此功能,将其设为STATIC

   [WebMethod]
    public static string names(List<string> obj)
    {
          string result = string.Empty;
           // code Logic
            string n1=obj[0];
            string n2=obj[1];
            string n3=obj[2];


        return result;
    }

现在使用jquery ajax

调用此函数

JS代码:

function namePerson() {

       var aData = [];
        aData[0] = "John";
        aData[1] = "Andrea";
        aData[1] = "Leslie";
        var jsonData = JSON.stringify({ obj: aData });

        $.ajax({
            type: "POST",
            url:"names.aspx/names",   
            data: jsonData,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccess_,
            error: OnError_
        });

}

function OnSuccess_(response){
  var result=response.d;
   alert(result);
}

function OnError_(error){
   alert(error);
}