捆绑&将JSON结果格式化为文本区域

时间:2015-09-28 20:47:23

标签: jquery json asp.net-mvc

我想要做的是从下拉列表中选择一个区域,然后在下面的同一页面上显示区域:leaid,name,category,county,streetline1,streetline2,city,stateprovince和postalcode使用JSON调用下拉到我的控制器,它将查询数据库。我指定这些列,因为这不是区表中的所有列。现在我有一个文本区域来显示结果,应该格式化如下:

leaid name category county streetline 1 streetline2 city etc ...

0435橙色..... ...... ...... ...... .....

然后在此我将为另一个表调用另一个查询,并以相同的格式显示该区的所有员工。

我遇到的问题是我的文本区域框中没有显示任何内容。当它从JsonResult返回时,我的代码没有到达if(!response)语句,最终什么都不做。

如果我需要解释更多,请告诉我。我对某些MVC还不熟悉。

更新:我尝试在查询字符串&中使用有效的ID当我从下拉列表中选择一个区域时,它工作正常。但是在查询之后,使用Firebug Lite for Chrome我收到500内部服务器错误。除此之外:" System.InvalidOperationException:序列化类型为' System.Data.Entity.DynamicProxies.District_B959D005D9073957EF5DDF15D4B22821F90F F068837E74B95429864C8DEB5D50'"

的对象时检测到循环引用

我的使用JSON调用的视图:

<form>
    <div>
        @Html.DropDownListFor(m => m.SelectedDistrict, Model.Districts, "----Select District----")
    </div>
    <div>
        @Html.TextArea("DistrictInformation", new { cols = 60, rows = 10 })
    </div>
</form>

<script type="text/javascript" src="~/scripts/jquery-1.10.2.js"></script>
<script type="text/javascript">
    var url = '@Url.Action("GetDistrictInfo", "District")';
    var info = $('#DistrictInformation');
    info.hide();
    $(document).on('change', '#SelectedDistrict', function () {
        info.val('').empty();          
        $.getJSON(url, { id: $(this).val() }, function (response) {
            if (!response) {
                return;
            }
            info.show();
            $.each(response, function (item) {
                info.append($.text(item.Text).val());
            });
        });
    });
</script>

我的控制器与JsonResult&amp;查询:

    public JsonResult GetDistrictInfo(string id)
    {
        var selectedDistrict = id;
        var district = getDistrict(selectedDistrict);
        return Json(district, JsonRequestBehavior.AllowGet);
    }

    internal IQueryable<District> getDistrict(string id)
    {
        var query = from District in db.Districts
                    where District.leaID.Equals(id)
                    select District;
        return query;
    }

0 个答案:

没有答案