jQuery asp.net web表单json返回结果
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5364343/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
asp.net web forms json return result
提问by amchoni
I use asp.net and web forms. In my project I have asmx web service
我使用 asp.net 和 web 表单。在我的项目中,我有 asmx Web 服务
[WebMethod]
public string GetSomething()
{
// avoid circual reference(parent child)
List<RetUsers> res = repo.GetAllUser().Select(c => new RetUsers {User_ID = c.User_ID,User_Name = c.User_Name,Date_Expire = c.Date_Expire }).ToList();
string res1 = res.ToJson();
// extension methods
return res.ToJson();
}
And result is in this format.
结果就是这种格式。
[
{"User_ID":1,"User_Name":"Test 1","Date_Expire":null},
{"User_ID":2,"User_Name":"Test 2","Date_Expire":null}
]
How can I append to label this result in $.ajax sucess to get this output:
如何在 $.ajax 中附加标记此结果以获取此输出:
1 - Test 1, 2 - Test 2.
1 - 测试 1、2 - 测试 2。
回答by Andrey
Return the list instead, and use [ScriptMethod(ResponseFormat = ResponseFormat.Json)] attribute - it will create JSON object as return automatically:
改为返回列表,并使用 [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 属性 - 它会自动创建 JSON 对象作为返回:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<RetUsers> GetSomething()
{
// avoid circual reference(parent child)
List<RetUsers> res = repo.GetAllUser().Select(c => new RetUsers {User_ID = c.User_ID,User_Name = c.User_Name,Date_Expire = c.Date_Expire }).ToList();
return res;
}
And on JS side:
在 JS 方面:
$.ajax(
{
type: "POST",
async: true,
url: YourMethodUrl,
data: {some data},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg)
{
var resultAsJson = msg.d // your return result is JS array
// Now you can loop over the array to get each object
for(var i in resultAsJson)
{
var user = resultAsJson[i]
var user_name = user.User_Name
// Here you append that value to your label
}
}
})