繁体   English   中英

jQuery / ajax POST一个Array /对象到C#代码后面

[英]jQuery/ajax POST an Array / objects to C# code behind

当我尝试通过其他问题学习时,仍然无法让它发挥作用

到目前为止,这是我的代码,试图尽可能彻底。

活动(点击)

var resluts = []; //its a collections of id's - list items of unsorted list as strings 
$('#next').click(function() {
    var RLength = resluts.length;
    alert(resluts);
});​

ajax POST

function UbpdateSecondStage(arr) {

    var WebMethod ="GetSecondStageData";
    var page ="Default.aspx/";
    var target = page + WebMethod;
    var SendParameters = Sys.Serialization.JavaScriptSerializer.serialize(arr);
    jQueryAjxUpdt(target, SendParameters);

}


function jQueryAjxUpdt(targetUrl, SentPars) {
    $.ajax({
              type: 'POST',
              url: targetUrl,
              data: {
                     'sentobj':SentPars

              },
              contentType: "application/json; charset=utf-8",
              dataType: "json",
              success: function (data) {
                                  //alert(data);
              }

   });
}

C#

  [WebMethod]
  public static string GetSecondStageData(object sentobj)
  {
      var x = sentobj;
    return ?? ...do i have to give a return.. even if i do not require one ?
  }

我的代码出了什么问题? 这是我第一次尝试这种方法。 谢谢。

我已经更新了几次,请再次阅读

在此输入图像描述

像这样修改您的WebMethod并再试一次:

[WebMethod]
public static string GetSecondStageData(object sentobj)
{
    var x = sentobj;
    return DateTime.Now.ToString();
}

首先,您应该从服务器返回指定您传递的内容(发送到服务器)以及您获得的响应(如果运气好的话)。 如果它正在抛出或发出任何错误,那么也应该指定。
其次,不需要使用以下代码。

var WebMethod ="GetSecondStageData";
var page ="Default.aspx/";
var target = page + WebMethod;
var SendParameters = Sys.Serialization.JavaScriptSerializer.serialize(arr);

你也可以像这样工作

var test=new Object();
test.myArray=arr;
jQueryAjxUpdt("<Relative path to the directory such as '../home/default.aspx' >", JSON.stringify(test))

再次更改ajaxFunction如下

function jQueryAjxUpdt(targetUrl, SentPars) {
$.ajax({
          type: 'POST',
          url: targetUrl,
          data: SentPars,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (data) {
                              //alert(data);
          }
    });
}

没有测试,但我猜它会工作让我知道,如果没有。 ;-)
最后,我猜你没有在default.aspx页面中保留任何内容, @page指令,即使你没有指定[WebMethod]属性,它仍然有效。

请尝试下面的代码

JavaScript的

function UbpdateSecondStage(arr) {
    var WebMethod ="GetSecondStageData";
    var page ="Default.aspx/";
    var target = page + WebMethod;
    var SendParameters =arr;
    jQueryAjxUpdt(target, SendParameters);

}

function jQueryAjxUpdt(targetUrl, SentPars) {
          $.ajax({
              type: "POST",
              url: targetUrl,
              data: '{"results": "' + SentPars + '"}',
              contentType: "application/json; charset=utf-8",
              processData: false,
              dataType: "json",
              success: function(msg) {
              //alert(msg);
                 here your code
              },
              error: function(x, e) {
                  if (x.status == 500) {
                      alert("An error has occurred during processing your request.");
                  }
              }
          });
      }

C#

[WebMethod]
public static string GetSecondStageData(object results)
{
    var x = results;
    return DateTime.Now.ToString();
}

让我知道结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM