4

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

到目前为止,这是我的代码,尽量做到彻底。

事件(点击时)

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

阿贾克斯邮政

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 ?
  }

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

我已经更新了几次请再读一遍

在此处输入图像描述

4

3 回答 3

6

像这样修改你的WebMethod,然后再试一次:

[WebMethod]
public static string GetSecondStageData(object sentobj)
{
    var x = sentobj;
    return DateTime.Now.ToString();
}
于 2012-12-25T10:23:05.707 回答
1

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

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]属性它也可以工作。

于 2012-12-25T10:33:38.553 回答
1

请尝试以下代码

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();
}

让我知道结果。

于 2012-12-25T10:37:07.567 回答