gpt4 book ai didi

c# - asp.net mvc3 返回多个 json 列表

转载 作者:太空狗 更新时间:2023-10-30 00:33:40 24 4
gpt4 key购买 nike

我的 asp.net mvc3 c# 代码返回这样的 json 列表:

return Json(new { name = UserNames, imageUrl = ImageUrls });

UserNamesImageUrls都是List<string>类型

这是我的javascript

function StartSearch(text) {
$.ajax({
url: '/Shared/Search',
type: 'POST',
data: { SearchText: text },
dataType: 'json',
success: function (result) {
$.each(result, function (i, item) {
alert(result[i].name);
});
}
});
}

如何获取名称和 ImageUrls

谢谢

最佳答案

像这样访问名称作为结果的属性 result.name[i]

本质上,result 将包含 name 和 imageUrl 这两个数组,就像您在匿名类型中定义的那样,因此您的代码应该像这样修改以显示 name 数组中每个名称的警报

function StartSearch(text) {
$.ajax({
url: '/Shared/Search',
type: 'POST',
data: { SearchText: text },
dataType: 'json',
success: function (result) {
$.each(result.name, function (i, item) {
alert(item);
});
}
});
}

$each 遍历名称数组中的项目时,它会将项目传递给回调的第二个参数,即项目。

所以

$.each(result.name, function (i, item) {
alert(item);
});

会弹出每个名字。

注意事项:

您可能想要更改匿名类型的属性以反射(reflect)它们是一个集合:

return Json(new { UserNames = UserNames, ImageUrls = ImageUrls });

这样,当您在成功函数中迭代它们时,它会更有意义。

正如 AlfalfaStrange 所指出的,我没有演示如何访问这两个数组。这让我想到,用户名和图片 url 之间的关系是什么?

这是用户的图像列表吗?也许您应该考虑为此创建一个特定的模型。例如,UserDisplayModel:

public class UserDisplayModel
{
public string UserName {get;set;}
public string ImageUrl {get;set;}
}

在您的 Controller 中返回一个 UserDisplayModel 列表。如果是这种情况,您将不得不重新考虑为什么它们首先是两个单独的列表。也许 ImageUrl 应该是 User 表上的一个字段。

所以现在,当您返回单个列表时,例如

List<UserDisplayModel> users = //get users from db
return Json(new { Users = Users});

你可以在js代码中一次迭代它们:

       $.each(result.Users, function (i, item) {
alert(item.Name);
alert(item.ImageUrl);
});

关于c# - asp.net mvc3 返回多个 json 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10869593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com