jQuery UI自动完成POST输入到控制器,但不自动完成

时间:2015-10-22 22:41:35

标签: c# jquery asp.net-mvc jquery-ui autocomplete

这是我第一次尝试使用jQuery自动完成功能,我觉得我最常用,但自动完成功能不起作用。

我正在使用带有data-autocomplete-url的textarea将输入传递给我的控制器操作:

<textarea id="assign-to" rows="1" data-autocomplete-url="@Url.Action("AutoCompleteUsername")"></textarea>

这应该允许自动完成工作吗?:

$(document).ready(function () {
    $("*[data-autocomplete-url]")
        .each(function() {
            $(this).autocomplete({
                source: $(this).data("autocomplete-url")
        });
    });
});

控制器操作:

public ActionResult AutoCompleteUsername(string term)
    {
        using (var entity = new TestEntities())
        {
            var users = entity.uspSearchUserByName(term).ToList();

            return Json(users, JsonRequestBehavior.AllowGet);
        }
    }

输入正在POST到控制器操作,并通过我的存储过程进行过滤。我的脱节是如何将自动完成的数据实际返回到textarea。现在看起来我只是将数据返回到无处。

在用户中,同时返回用户名和ID。我不确定如何设置自动完成的值和标签。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

根据documentation,您需要将JSON数据作为具有标签和值属性的对象数组返回。

[ { label: "Choice1", value: "value1" }, ... ]

在自动完成下拉列表中,将显示标签,在您选择一个选项后,相应的值将被设置到您的文本区域中。