ASP.NET MVC 5 JsonResult & Ajax - MVC JQuery 错误

ASP.NET MVC 5 JsonResult & Ajax - MVC JQuery error

感谢@NikhilGhuse,已将解决方案发送给我(请标记他的回答)。我可以将此解决方案应用于我的数据,这些是结果和关键:

首先,我的模型需要向控制器发送一个列表。这是我发送列表的功能:

                            public List<VistaModelo> SegundaConsulta()
                            {
                                //Web.Config
                                Entities db = new Entities();

                                var consulta = from varLocal in db.LecturaContadorLuzAANDRES
                                                group varLocal by varLocal.dispositivo into subconsulta
                                                select subconsulta.OrderByDescending(t => t.unixtime).FirstOrDefault();

                                List<LecturaContadorLuzAANDRES> lista = consulta.ToList();

                                List<VistaModelo> listaVistaModelo = new List<VistaModelo>();


                                foreach (LecturaContadorLuzAANDRES b in lista)
                                {
                                    VistaModelo objLista = b.pasaObjetoAVistaModelo();
                                    listaVistaModelo.Add(objLista);
                                }

                                return listaVistaModelo;
                            }

然后在我的控制器中我需要两个函数:

Consulta 6.读取列表并转换为JSON(您需要:使用Newtonsoft.Json;在控制器中:

public JsonResult Consulta6()
    {
        var Consulta = new ConsultaContraBD();
        List<VistaModelo> miSegundaConsulta = Consulta.SegundaConsulta();

        return Json(miSegundaConsulta, JsonRequestBehavior.AllowGet); //El JsonRequest Behaviour permite que se devuelva información de JSON en un getRequest.

    }

咨询7。通过这种方法,我制作了视图:

public ActionResult Consulta7()
    {
        return View();

    }

最后,我需要 Ajax 进入脚本以读取传递给方法 Consulta6 的信息。注意:记得加载包 json2.js 和 jquery-3.0.0.js

                            @{
                            ViewBag.Title = "Consulta7";
                        }



                        <script src="~/Script/jquery-3.0.0.js"></script>
                        <script src="~/Script/json2.js"></script>
                        <script type="text/javascript">

                            $(function () {
                                $('#btonLista').on("click", function (e) {
                                    e.preventDefault();
                                    $.ajax
                                        ({
                                            url: '/Home/Consulta6/',
                                            type: 'get',

                                            dataType: 'json',
                                            success: function (data) {

                                                $(data).each(function (index, item) {
                                                    $('#ulLista').append("<li>" + item.consumo + "</li>")
                                                });
                                            }
                                        });
                                });
                            });
                        </script>
                        <div>
                            <input type="button" id="btonLista" value="Click" name="" />
                            <ul id="ulLista"></ul>
                        </div>

最终结果是您单击按钮和 returns 列表的页面。

<script type="text/javascript">
    $(function ()
    {enter code here
        $('#btonLista').on("click", function (e)
        {
            e.preventDefault();
            $.ajax
                ({
                    url: '/Home/Consulta52/',
                    type: 'GET',
                    dataType: 'json',
                    success: function (data) {
                        $(data).each(function (index, item) {
                            $('#ulLista').append("<li>"+item.consumo+"</li>")
                        });
                    }
                });
        });
    });
</script>

我的两个控制器:

public ActionResult Consulta51()
    {
        return View();
    }

    public JsonResult Consulta52()
    {
        var Consulta = new ConsultaContraBD();
        var miSegundaConsulta = Consulta.SegundaConsulta();


        return Json(miSegundaConsulta.ToList(), JsonRequestBehavior.AllowGet);
    }

/// 我的样本从这里开始

//控制器

     namespace Sample.Controllers
    {
       public class HomeController : Controller
    {
    //
    // GET: /Home/

    public ActionResult Index()
    {
        return View();
    }

    public JsonResult Consulta52()
    {
        modelCS model = new modelCS();
        List<Department> ds = model.getList();
        return Json(ds, JsonRequestBehavior.AllowGet);
    }
   }
 }

//Index.cshtml

     @{
    ViewBag.Title = "Index";
  }
  <h2>
      Index</h2>
  <script src="../../scripts/jquery-2.1.4.js" type="text/javascript">
   </script>
       <script src="../../scripts/json2.js" type="text/javascript"></script>
     <script type="text/javascript">
       $(function () {
    $('#btonLista').on("click", function (e) {
        e.preventDefault();
        $.ajax
            ({
                url: '/Home/Consulta52/',
                type: 'get',

                dataType: 'json',
                success: function (data) {

                    $(data).each(function (index, item) {
                        $('#ulLista').append("<li>" + item.DepartmentName + "</li>")
                    });
                }
            });
         });
       });
  </script>
       <div>
        <input type="button" id="btonLista" value="Click" name="" />
       <ul id="ulLista">
     </ul>
      </div>

我的模型Class是这样的

    public class modelCS
     {
    string constr = "Data Source=.;Initial Catalog=test1;Integrated Security=True";
    List<Department> newDept = new List<Department>();
    public List<Department> getList()
    {
        SqlConnection con = new SqlConnection(constr);
        // SqlCommand cmd = new SqlCommand("select * from Department", con);
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("select * from Department", con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        var td = ds.Tables[0];
       // List<Department> newDept = new List<Department>();

        foreach (DataRow t in td.Rows)
        {
            newDept.Add(new Department() { DepartmentId = (int)t.ItemArray[0], DepartmentName = t.ItemArray[1].ToString() });
        }

        return newDept;
        //List<string> list = listT
    }

}

部门class

public class Department
{
    public int DepartmentId { get; set; }
    public string DepartmentName { get; set; }
}