将List放入jQuery脚本MVC3中

时间:2012-01-03 11:02:28

标签: asp.net-mvc-3 jquery-ui

我使用jQuery UI Autocomplete。 部分脚本是:

$("input[data-autocomplete]").each(function () {
var availableTags = ["first", "second"];

它可以自动完成“第一”和“第二”

现在我想要像以下一样分配avalibleTags:

var availableTags = @Viewbag.Something

var availableTags = @Url.Action('Tags","Home")

有可能吗?怎么做得好?

2 个答案:

答案 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"];

并且可以将其与自动完成插件一起使用。