Asp.net WebMethod-返回字符串[],并使用JavaScript对其进行解析

Asp.net WebMethod-返回字符串[],并使用JavaScript对其进行解析,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我需要从codebehind的MyMethod返回一个字符串数组。但我是否要在aspx页面上使用javascript解析它 [WebMethod] public static string[] MyMethod(){ return new[] {"fdsf", "gfdgdfgf"}; } .......... function myFunction() { $.ajax({ ...... success: function

我需要从codebehind的MyMethod返回一个字符串数组。但我是否要在aspx页面上使用
javascript
解析它

[WebMethod]
public static string[] MyMethod(){
   return new[] {"fdsf", "gfdgdfgf"};
}

..........
function myFunction() {
            $.ajax({ ......
                    success: function (msg) {
                                //how do I parse msg?
                                }
            });
        };

首先,确保已使用
[ScriptService]
标记类,以允许通过AJAX调用它。比如:

[ScriptService] //<-- Important
public class WebService : System.Web.Services.WebService
{
   [ScriptMethod] //<-- WebMethod is fine here too
   public string[] MyMethod()
   {
      return new[] {"fdsf", "gfdgdfgf"};
   }
}
另一种方法是仅包括对以下内容的引用:

<script src="WebService.asmx/js" type="text/javascript"></script>

onComplete
函数将接收一个带有web服务调用结果的参数,在您的例子中是一个包含2个字符串的Javascript数组。在我看来,这是一个比使用jQuery和担心URL和HTTP负载更简单的解决方案。

使用jQuery迭代器对msg结果中的字符串进行迭代,如下所示

function myFunction() {
    $.ajax({ ......
        success: function (msg) {
            $.each(msg, function(index, value) {
                alert(value);
            });
        }
    });
};

响应
object
将包含一个名为
d
的对象,该对象包装从WebMethod返回的值。只需像这样访问它:

function myFunction() {
    $.ajax({ ......
        success: function (msg) {
            //how do I parse msg?
            alert(msg.d); //alerts "fdsf", "gfdgdfgf"
        }
    });
};

请参阅此处以获取解释。

如何使用WebMethod解析msg?@Grienders-您的响应是SOAP还是JSON<代码>[WebMethod]支持这两种方法。
function myFunction() {
    $.ajax({ ......
        success: function (msg) {
            $.each(msg, function(index, value) {
                alert(value);
            });
        }
    });
};
function myFunction() {
    $.ajax({ ......
        success: function (msg) {
            //how do I parse msg?
            alert(msg.d); //alerts "fdsf", "gfdgdfgf"
        }
    });
};