1

データをバインドして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オートコンプリートプラグインを試しましたが、機能します。そのためのコードは次のとおりです。

 <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、入力フィールドが消えてしまいます。

4

1 に答える 1

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
        });
    });

そしてそれは今動作します

于 2013-02-20T09:21:53.480 に答える