我需要遍历从控制器返回的json对象。
我的控制器代码
public ActionResult GetJobs()
{
var jobs = new JobConfig().getJobs(User.Identity.Name);
return Json(jobs.ToList(),JsonRequestBehavior.AllowGet);
}
我的javascript代码
$(document).ready(function () {
$('#search').click(function () {
$.when(
getUser(), //Get User Details
getJobs()//Get Jobs
).then(process);
});
});
function getUser() {
return $.ajax({
type: 'GET',
url: '/ManageUsers/GetUser',
data: { UserName: $('#txtUser').val() },
dataType: 'json'
});
}
function getJobs() {
return $.ajax({
type: 'GET',
url: '/ManageUsers/GetJobs',
dataType: 'json'
});
}
function process(user,jobs) {
//Show the user here
if (user[0].Name != null) {
var list = '<p> User : ' + user[0].Name + '<br/>';
list += 'Email : ' + user[0].Email + '<br/>';
list += 'Role : ' + user[0].Role + '<br/>';
list += 'UserData : ' + user[0].UserData;
list += '</p><br/>';
alert(jobs.length);
$('#user').empty();
$('#user').append(list);
}
else {
$('#user').empty();
$('#user').append('User not exists');
}
}
alert(jobs.length)表示长度为3,因为作业对象看起来像这样
jobs: Array[3]
0: Array[1]
1: "success"
2: Object
但我只关心0元素。
我认为使用return $ .ajax函数返回结果的方式。
关于从jobs数组中获取第一个元素的想法吗?
此致
Sab的
答案 0 :(得分:0)
var someReturnedData = [{"JobId":"ArtListLoad","JobDesc":"GOLD Article List Load","JobFilePrefix":null,"JobFileSrcDir":null,"JobFileDataDir":null,"JobFileExtension":null,"JobFileDataRange":null,"JobScript":null}]
根据您从动作结果返回的示例给出一个JSON数据对象,您可以使用以下命令访问第一个元素:
someReturnedData[0]
如果你想要“JobId”,你可以通过以下方式访问它:
someReturnedData[0].JobId
编辑:
根据您的评论,您可以修改GetJobs函数以包含成功处理程序。执行您需要处理的内容,然后将该对象返回到您的过程函数。也许是这样的:
function getJobs() {
var jobs;
$.ajax({
type: 'GET',
url: '/ManageUsers/GetJobs',
dataType: 'json',
success: function(data) {
jobs = data[0];
}
});
return jobs;
}