我正在使用jQuery和Ajax练习MVC,我创建了一个带有类别的产品,在将产品存储到List时将CategoryID传递给服务器并在显示产品列表中我需要根据类别ID显示类别名称,为此我创建了以下功能:
$.get('@Url.Action("GetList", "Product")', null, function (data) {
var table = "<table class=" + "mytable" + "><thead><tr><td>ID</td><td>Name</td><td>Description</td><td>Price</td><td>CategoryId</td></tr></thead><tbody>";
for (var key in data.pList) {
if (data.pList.hasOwnProperty(key)) {
var name ="default";
$.get('@Url.Action("GetCategoryName", "Product")', { categoryId: data.pList[key].CategoryId }, function (categoryDictionary) {
name = categoryDictionary.name;
});
table += "<tr>";
table += "<td>" + data.pList[key].Id + "</td>";
table += "<td>" + data.pList[key].Name + "</td>";
table += "<td>" + data.pList[key].Description + "</td>";
table += "<td>" + data.pList[key].Price + "</td>";
table += "<td>" + name + "</td>";
table += "</tr>";
}}
table += "</tbody></table>";
$("#div").append(table);
});
“name”仍然显示默认值,我在许多地方读过$ .ajax是异步的,它不能返回值like this
在这里,我也从$ .get访问回调,这个嵌套调用是可能的还是可以是其他解决方案?
先谢谢。