[英]Append json result to div via AJAX(ASP.NET MVC)
我有可以正常工作的AJAX调用,并返回JSON
这是AJAX通话
<script>
$('#display').click(function () {
var vacancyId = $("#vacancy").val();
var model = {
vacancyId: vacancyId
};
$.ajax({
url: '@Url.Action("QuestionBlocks", "Questions")',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(model),
type: 'POST',
dataType: 'json',
processData: false,
success: function (data) {
$(".list").append('<div>' + data.Question1 + '</div>');
}
});
});
这是服务器端
[HttpPost]
public ActionResult QuestionBlocks(int vacancyId)
{
var items = db.QuestionBlocks
.Where(x => x.Interview.VacancyId == vacancyId)
.Select(x => new
{
ID = x.Block_ID.ToString(),
Question1 = x.Question1,
Question2 = x.Question2,
Question3 = x.Question3,
Question4 = x.Question4,
Question5 = x.Question5,
Question6 = x.Question6,
Question7 = x.Question7,
Question8 = x.Question8,
Question9 = x.Question9,
Question10 = x.Question10,
})
.ToList();
return Json(items, JsonRequestBehavior.AllowGet);
}
它返回这样的数据
{ID:“ 1087”,问题1:“Расскажитеосебе”,问题2:“告诉您”,…}
我的问题是- $(".list").append('<div>' + data.Question1 + '</div>');
效果很好,但显示undefined
为什么这样?
听起来您需要将数据解析为JSON。 尝试像这样使用它:
$(".list").append('<div>' + JSON.parse(data).Question1 + '</div>');
看来data
里面有一个数组,所以尝试这样的成功代码:
$.ajax({
url: '@Url.Action("QuestionBlocks", "Questions")',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(model),
type: 'POST',
dataType: 'json',
processData: false,
success: function (data) {
var question1 = data[0];
$(".list").append('<div>' + question1.Question1 + '</div>');
}
});
我认为它不会返回{ID: "1087", Question1: "Расскажите о себе", Question2: "Tell about you",…}
。 你确定吗 items
将是数组(ToList())。
[{ID: "1087", Question1: "Расскажите о себе", Question2: "Tell about you",…}]
所以先得到:
var question1 = data[0]
$(".list").append('<div>' + question1.Question1 + '</div>');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.