Asp.net WebMethod-返回字符串[],并使用JavaScript对其进行解析
我需要从codebehind的MyMethod返回一个字符串数组。但我是否要在aspx页面上使用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
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"
}
});
};