MVC 4 Razor - JQuery UI Autocomplete部分停止工作

时间:2014-12-03 23:31:00

标签: jquery asp.net-mvc-4 razor autocomplete jquery-ui-autocomplete

在我正在进行的项目中,我设置了一个带有数据库后端的MVC 4 Web App。几乎从一开始,我就已经使用JQuery UI进行自动完成了。一切都很完美。我多次更新了JQuery UI的版本,但每次升级都能正常工作。我现在的版本是1.11.2。

然而,今天,我转移了一个表格覆盖的区域,因为它包含了它不一定需要的东西。我自己完成的自动填充框不再需要处于格式状态,因此它们被移出了。自动完成框没有其他功能。

出于某种原因,自动完成格式化现在已经破坏,其中一个框甚至不会返回任何内容。那个仍在部分工作的人正在拔出正确的"值",但"标签"是一个没有像以前那样出现的人。完全破碎的人不能显示其中任何一个。

自动填充的脚本位于视图页面底部的普通脚本标记内,但不在@section或任何内容的内部。

这是一半工作的自动完成代码:

$("#agencyCode").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/Employee/LookupAgencies",
                type: "POST",
                dataType: "json",
                data: { term: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                        return { label: item.Code + " - " + item.Name, value: item.Code, desc: item.Name, parent: item.ParentID };
                    }));
                }
            });
        },
        select: function(event,ui){
            document.getElementById('agencyChoice').innerHTML = ui.item.desc;
        }
    });


而这是一个完全被打破的人:

$("#fOOCTTaxCode").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/Employee/LookupFOOCT",
                type: "POST",
                dataType: "json",
                data: { term: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                        return { label: item.FederalTaxID + " - " + item.Name, value: item.FederalTaxID, desc: item.Name };
                    }))
                }
            })
        },
        select: function (event, ui) {
            document.getElementById('fooctChoice').innerHTML = ui.item.desc;
        }
    });


查询数据库以获取自动完成结果的后端部分如下所示:

public ActionResult LookupAgencies(string term)
    {
        int currentCampaign = ePledgeDataLayer.Campaign.GetCurrentCampaign();

        var retValue = (from r in ePledgeDataLayer.Organization.GetAgencies(currentCampaign)
                        where r.Code.Contains(term)
                        select new { r.Code, r.Name, r.ParentID }).Distinct();

        return Json(retValue, JsonRequestBehavior.AllowGet);
    }


破碎的后端正在查询同一个表,除了切换到适当的名称以获取其他列。

我已检查过数据库,但我没有任何可能会混淆的重复条目。在查看此问题的其他答案时,他们似乎都没有解决这个特定类型的问题。当我尝试从自动完成获取响应时,Visual Studio 2013或Chrome控制台内部不会抛出任何错误。

我尝试在该区域周围添加另一种形式,看看是否需要触发一些奇怪的东西以便工作而且什么也没做。

我现在需要在我的脚本周围添加@section吗?或者我错过了一些完全明显的东西?

0 个答案:

没有答案