我想绑定数据以使用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 auto complete插件,它可以工作。 这是代码:
<div class="ui-widget">
<label for="tags">
Tags:
</label>
<input id="tags" />
</div>
$(function() {
var availableTags = @Html.Raw(Json.Encode(@ViewBag.Tags));
$( "#tags" ).autocomplete({
source: availableTags
});
});
任何想法可能是什么?
我正在使用带Razor的MVC3。当我availableTags
与ViewBag
时,输入字段就会消失。
答案 0 :(得分: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
});
});
现在可以使用了