显示从ASP.NET MVC Controller返回到AJAX的列表

时间:2016-06-06 14:07:03

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

所以我对FRONT-END方面特别是jQuery并不是那么好。 后端端我正在检索从存储过程执行的列表 我需要发回该列表并在现有表格中显示“APPEND”列表。

后端行动:

[HttpPost]
    public JsonResult Search(string RefAO)
    {

        BD_MarcheEntities ctx = new BD_MarcheEntities();
        var list = ctx.Bilan_Lot(RefAO).ToList<Bilan_Lot_Result>();
        if(list != null)
        {

            //var li = JsonConvert.SerializeObject(list);
            return Json(list, JsonRequestBehavior.AllowGet);

        }
        else
        {
            return Json("fail");
        }
    }

jQuery / AJAX函数:

$(document).on("click","#bt_search",function (e) {
alert("ff");
        $.ajax({
                    url : '/Lots/Search',
                    type : 'POST',
                    data : {  RefAO : $("#RefAppelOffre").val()  },
                    success : function(list) {
                        if(list == "fail"){

                            alert('error');

                        }
                        else{


                            $.each(list,function(){

                               $("#tab tbody").append("<tr>" +
                                                            "<td>" + list.Ref_Lot + "</td>" +
                                                            "<td>" + list.Titre + "</td>" +
                                                            "<td>" + list.TotalLotTTC + "</td>" +
                                                            "<td>" + list.NombreConcurrent + "</td>" +
                                                            "<td>" + list.NombreArticle + "</td>" +
                                                        "</tr>");
                            })

                        }//Fermeture Else
                    }//Fermeture Success

               })//fermeture ajax        
   })

有人请告诉我这里我做错了什么!?

this it displays

更新: 这是我在使用(console.log)

时得到的

this is actually the row I am expecting to be added to the table

2 个答案:

答案 0 :(得分:0)

假设您的服务器实际上正在返回一个对象数组,那应该是:

...
                        $.each(list,function( index, value ){

                           $("#tab tbody").append("<tr>" +
                                                        "<td>" + value.Ref_Lot + "</td>" +
...

如果这不起作用,您应该在进入循环之前提供list的console.log。

答案 1 :(得分:0)

试试这个

success : function(list) {
    if(list == "fail"){
        alert('error');
    }
    else{
        $.each(list,function(i){
           $("#tab tbody").append(
                "<tr>" +
                    "<td>" + list[i].Ref_Lot + "</td>" +
                    "<td>" + list[i].Titre + "</td>" +
                    "<td>" + list[i].TotalLotTTC + "</td>" +
                    "<td>" + list[i].NombreConcurrent + "</td>" +
                    "<td>" + list[i].NombreArticle + "</td>" +
                "</tr>");
        })
    }//Fermeture Else
}//Fermeture Success