【问题标题】:jQuery UI autocomplete POSTs input to controller, but does not autocompletejQuery UI 自动完成 POST 输入到控制器,但不自动完成
【发布时间】:2016-01-22 09:03:49
【问题描述】:

这是我第一次尝试使用 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 到控制器操作,并通过我的存储过程进行过滤。对我来说,断开连接是自动完成的数据实际上是如何返回到文本区域的。现在看来我只是将数据返回到任何地方。

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

感谢您的帮助

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 2011-02-06
      • 2011-07-23
      • 1970-01-01
      相关资源
      最近更新 更多