从mvc控制器读取json对象到dropdownlist

时间:2017-10-26 06:36:44

标签: c# jquery asp.net json model-view-controller

在actionresult中,我编写了另一个函数控制器,它最初将查询输出转换为.tolist(),然后将输出发送为json。

var qry = searchFilter(sobj);
            var resultData = qry.ToList().Select(
                    u => new
                    {
                        RowId = 0,
                        u.Id,
                        u.Title
                    }).ToList();
            return Json(new { data = resultData }, JsonRequestBehavior.AllowGet);

在视图中,我想在getjson上读取json数据,并使用以下命令将其放在html.dropdown中:

$.getJSON('@Url.Action("GetData", "EduBranch", new { area="ManageLesson"})', null, function (data) {

            $.each(data, function (index, obj) {
                $('#col6_filter').append('<option value=' +
                  obj.Id + '>' + obj.Title + '</option>');
            });
        });

帮助器如下:

@Html.DropDownList("col6_filter", new SelectList(string.Empty, "Id", "Title"), "Please select..", new { @class = "form-control" })

但是在运行时,数据显示未定义下拉列表。问题出在哪儿?谢谢你的帮助。

3 个答案:

答案 0 :(得分:0)

尝试这个返回新的JsonResult(结果,JsonRequestBehavior.AllowGet);

答案 1 :(得分:0)

尝试此返回

return Json(resultData, JsonRequestBehavior.AllowGet);

 $.each(data.data, function (index, obj) {
            $('#col6_filter').append('<option value=' +
              obj.Id + '>' + obj.Title + '</option>');
        });

答案 2 :(得分:0)

    make sure you have it like this in your controller
        return Json(resultData, JsonRequestBehavior.AllowGet);

  --Your script--

    $.get("yourcontroller/Yourfunction",
         function (data) {
           $.each(data, function (i, datum) {
           $("#col6_filter").append('<option value="' + datum.Value + '">' + datum.Text + '</option>');
               });
              });
         });