将ajax包含在自动完成中

时间:2012-06-18 17:22:29

标签: c# ajax json asp.net-mvc-3

目前我有这个自动完成选项:

<script type="text/javascript">
    $().ready(function () {

        $("#tags").autocomplete(["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "pearl"], {
            width: 320,
            max: 4,
            highlight: false,
            multiple: true,
            multipleSeparator: " ",
            scroll: true,
            scrollHeight: 300
        });
    });
    </script>

    <body> <p>
        <label>Tags (local):</label>
        <input type="text" id='tags' />
    </p>
</body>

但我想从一个动作方法中获取这个数组:[“c ++”,“java”,“php”,“coldfusion”,“javascript”,“asp”,“ruby”,“python”,“ c“,”scala“,”groovy“,”haskell“,”pearl“]。例如,从控制器“搜索”中的动作“快速搜索”。

这样的事情:

public ActionResult QuickSearch(string term)
        {
            IEnumerable<string> list = test();
            return Json(list, JsonRequestBehavior.AllowGet);
        }

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

是的,您可以将URL放到action方法中,该方法将数据源作为“source”参数返回到自动完成功能。来自文档:

数据源可以是:

  • 包含本地数据的数组
  • 一个String,指定一个URL
  • a Callback

答案 1 :(得分:0)

你几乎在那里:

<script type="text/javascript">
$().ready(function () {

    $("#tags").autocomplete({
        source: "URL to your method"
        width: 320,
        max: 4,
        highlight: false,
        multiple: true,
        multipleSeparator: " ",
        scroll: true,
        scrollHeight: 300
    });
});
</script>

您需要将一个源属性添加到传入的options对象中,该源可以是数组,回调,或者在您的情况下是方法的URL。

来自根目录的相对网址是“搜索/快速搜索”