我使用jQuery UI Autocomplete。 部分脚本是:
$("input[data-autocomplete]").each(function () {
var availableTags = ["first", "second"];
它可以自动完成“第一”和“第二”
现在我想要像以下一样分配avalibleTags:
var availableTags = @Viewbag.Something
或
var availableTags = @Url.Action('Tags","Home")
有可能吗?怎么做得好?
答案 0 :(得分:1)
在您看来,您可以这样做:
<script type="text/javascript">
$(function () {
var MyTags = $.getJSON('@Url.Action("Tags","Home")' function (MyList) {
// Do something with List
// var avaliableTags = MyList;
});
});
</script>
(这使用JQuery)
会工作吗?动作在控制器中的位置如下:
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult Tags()
{
var MyList == YOUR TAGS
return Json(MyList , JsonRequestBehavior.AllowGet);
}
注意,使用属性和JSON来允许Javascript通信。
编辑:woops,使用关键词。
答案 1 :(得分:0)
当然,只需确保对JSON进行编码:
var availableTags = @Json.Encode(ViewBag.Something);
因为我讨厌ViewBag并建议你总是使用视图模型和强类型视图:
var availableTags = @Json.Encode(Model.Something);
这假设Something
是视图模型上的一个字符串属性数组,这样当呈现页面时,您将获得:
var availableTags = ["first", "second"];
并且可以将其与自动完成插件一起使用。