首页 > 解决方案 > 根据从控制器传递的数据在视图中显示列表

问题描述

我正在从我的控制器传递一个 JSON 格式的列表,由于某种原因,列表中的数据没有显示在视图中。

这是控制器中传递的数据:

 [HttpPost]
        public ActionResult GetIndustryCat(string Country)
        { var dataContext = MvcApplication.GetDataContext();
            var Location = dataContext.Locations.Single(c => c.Location_Name == Country);
            var IndustryCat = dataContext.IndustryCategories.Where(c => c.Location_ID == Location.Location_ID).ToList();
            return Json(new {Cat = IndustryCat.Select(c => c.IndustryCategory_Name) });
        }

这是视图:

</select>
<script>
    $("#selectindustrycat").hide();
    $("select")
        .change(function () {
            var str = "";
            $("select option:selected").each(function () {
                str += $(this).text() + " ";
            });
            $.ajax({
                url: "GetIndustryCat",
                type: "POST",
                data: { Country: str },
                success: function (data) {

                }
            }).done(function (data) {
                for (var i = 0; i < data.length; i++) {
                    $("#selectindustrycat").append('<option value=' + i + '>' + i + '</option>');
                }
                $("#selectindustrycat").show();
            });
    });


</script>

选择选项列表显示,但其中没有数据。

标签: c#jqueryajaxasp.net-mvc

解决方案


您需要从数据更改为 data.Cat

for (var i = 0; i < data.Cat.length; i++) {
                    $("#selectindustrycat").append('<option value=' + i + '>' + i + '</option>');
                }

推荐阅读