通过AJAX获取所有值并在div中显示(ASP.NET)

时间:2017-04-11 13:10:59

标签: javascript jquery asp.net ajax asp.net-mvc

我有记录表

我需要按按钮显示div中的所有记录

我有这样的AJAX调用

<script>
     $('#save_quest').click(function() {
    email_update();
});

function email_update() {
    $.ajax({
        url: '@Url.Action("EmailsList", "Questions")',
        contentType: 'application/json; charset=utf-8',
        //data: JSON.stringify(model),
        type: 'POST',
        dataType: 'json',
        processData: false,
        success: function(data) {
            var question1 = data[0];

            $(".email_list")
                .append(
                    '<div class="testing666" style="width:80%;font-size:20px;margin-top:15px;border-style: solid;border-color:#ffcf00;border-radius: 5px;margin: 10px auto 0;;">' +
                    question1 +
                    '</div>');
            var divs = document.getElementsByTagName('div');

            for (i = 0; i < divs.length; i++) {
                if (divs[i].innerHTML == "") {
                    divs[i].style.display = 'none';
                }
            }
        }
    });
}
</script>

这是控制器(已更新)

    [HttpPost]
    public ActionResult EmailsList()
    {
        var items_email = db.InvitationMails
            .Select(x=> new
            {
                Email = x.To.ToString(),
                Name = x.Name.ToString(),
            })
            .ToList();
        return Json(items_email, JsonRequestBehavior.AllowGet);
    }

我需要在这里写一下,根据控制器选择显示所有数据

//data: JSON.stringify(model)

2 个答案:

答案 0 :(得分:0)

在控制器中,您没有参数。所以你不需要在ajax的数据中传递任何东西。

答案 1 :(得分:0)

我们需要更多信息。打开浏览器工具并测试请求。你看到了什么?回答是什么?您的请求是否被路由到正确的控制器?控制器没有响应吗?到底是怎么回事?您的帮助请求实在太过模糊,无法真正得到帮助。

如果您没有发送任何数据,为什么要使用POST?如果您不打算发送任何数据,只想获取EmailsList,请使用GET,并将[HttpPost]属性更改为[HttpGet]。如果您想使用POST,请删除JsonRequestBehavior.AllowGet。如果您实际上不需要公开GET,则无法使用{{1}}。您的控制器方法不需要任何参数,因此只需简单的get。