簡體   English   中英

ASP.NET MVC 5 JsonResult和Ajax-MVC JQuery錯誤

[英]ASP.NET MVC 5 JsonResult & Ajax - MVC JQuery error

感謝@NikhilGhuse,該解決方案已發送給我(請標出他的回答)。 我可以將此解決方案應用於我的數據,這些是結果和關鍵:

首先,我的模型需要發送一個List到控制器。 這是我發送列表的功能:

                            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.

    }

Consulta7。 通過這種方法,我可以創建視圖:

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>

最終結果是一個頁面,您單擊一個按鈕並返回列表。

<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>

我的模型課是這樣的

    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
    }

}

部門課

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

產量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM