Asp.net WebMethod-返回字符串[]并使用JavaScript进行解析
Asp.net WebMethod - return string[] and parse it using JavaScript
我需要在codeehind从MyMethod返回一个字符串数组。但我是否使用javascript
在aspx页面上解析它?
[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"};
}
}
然后,您可以直接使用jQuery读取结果,因为不需要解析任何内容:
$(document).ready(function() {
$.ajax({
type: "POST",
url: "WebService.asmx/MyMethod",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// msg.d will be your array with 2 strings
}
});
});
另一种方法是只引用:
<script src="WebService.asmx/js" type="text/javascript"></script>
这将生成代理类,允许您直接调用web方法。例如:
WebService.MyMethod(onComplete, onError);
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"
}
});
};
有关解释,请参阅此问题。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- Javascript生成的表单未提交
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何检测浏览器类型在HTML5或Javascript播放mp3,而不是在Safari/IE浏览器的webm