Jquery UI在MVC3应用程序中自动完成



你好,我在控制器中有以下代码:

   ViewBag.localitate = db.Localitatis.OrderBy(p => p.Localitate).ToList();

在视图上,我试图通过获得它

<script type="text/javascript">
    $(function () {
        var availableTags = [
         @foreach (var item in ViewBag.localitate)
              {
                       @item.Localitate 
             }

    ];
        $("#destination").autocomplete({
            source: availableTags
        });
    });
</script>

我不知道如何格式化它,以获得像jquery演示示例中那样的数组:

"ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"

为了使用数据库中的值使自动完成工作

感谢

<script type="text/javascript">
    $(function () {
        $("#destination").autocomplete({
            source: @Html.Raw(Json.Encode(ViewBag.localitate))
        });
    });
</script>

如果您有大量数据,请考虑使用服务器端控制器操作来执行筛选。

首先,将视图数据设置为只有您想要的实际名称:

ViewBag.localitate = db.Localitatis.Select(p => p.Localitate).OrderBy(p => p).ToList();

那么在javascript中呈现它的最简单方法是:

var availableTags = [" @String.Split(","", ViewBag.localitate) "];

但我建议使用像JSON.NET这样的JSON解析器。这样,您就不必担心跨站点脚本攻击之类的问题,因为事情对您来说是可以逃避的。

var availableTags = @(JsonConvert.Serialize(ViewBag.localitate));

最新更新