你好,我在控制器中有以下代码:
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));