2013-02-20 44 views
1

我想綁定數據以使用ViewBag標記它,不幸的是它不起作用。Jquery TagIt使用ViewBag作爲數據源插件的問題

所以,這裏是我的控制器:

public ActionResult ArticleEdit(Guid id) 
    { 
     ViewBag.Tags = db.Tags.Select(tag => tag.Name).ToList(); 

     Article article = db.Articles.Single(a => a.ArticleID == id); 
     return View(article); 
    } 

而我的觀點:

<div class="tags"> 
     <label for="tags"> 
      Tags</label> 
     <ul id="mytags"> 
     </ul> 
    </div> 

的Javascript:

$(document).ready(function() { 
    $("#mytags").tagit({ 
     availableTags: @Html.Raw(Json.Encode(@ViewBag.Tags)) 
    }); 
}); 

它呈現爲:

$(document).ready(function() { 
    $("#mytags").tagit({ 
    availableTags: ["boool! ","asd ","asdasdasd "] 
    }); 
}); 

如果我用 availableTags: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl"]

它工作得很好。

我試着用ViewBag定期jQuery自動完成插件,它的工作原理。 這裏是代碼:

​​

任何想法是什麼?

我正在使用MVC3和Razor。當我availableTagsViewBag,輸入字段剛剛消失。

+0

你能仔細檢查所提供的HTML,因爲它應該工作:http://jsfiddle.net/XT6Aj /。你有沒有檢查你的瀏覽器JS控制檯是否有任何錯誤? – nemesv 2013-02-20 09:19:51

+0

我檢查了兩次,它顯示罰款。我只在visual studio中關閉條件編譯。 無論如何它現在的作品,感謝注意我的問題) – makambi 2013-02-20 09:24:12

+0

嗨@makambi。無需將標題標記爲[固定] - 只需勾選您的答案':)'。 – halfer 2013-02-20 10:25:12

回答

0

嗯,我改變

$(document).ready(function() { 
    $("#mytags").tagit({ 
     availableTags: @Html.Raw(Json.Encode(@ViewBag.Tags)) 
    }); 
}); 

var myTags = @Html.Raw(Json.Encode(@ViewBag.Tags)); 

    $(document).ready(function() { 
     $("#mytags").tagit({ 
      availableTags: myTags 
     }); 
    }); 

和現在的工作