繁体   English   中英

通过AJAX(ASP.NET MVC)将json结果附加到div

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM