3

TokenInput と MVC 3 C# を使用しています。

この JQuery を機能させたいのですが、入力ボックスからコントローラー クラスのメソッドに文字列が渡されることはありません。私は何を間違っていますか。

作成.cshtml

<input type="text" id="authorlist" name="q" data-autocomplete="@Url.Action("GetAuthors", "Author")" />

AuthorController.cs

public ActionResult GetAuthors(string term)
        {
            term = term.ToUpper();
            var authors = db.AUTHOR
                .Where(a => a.FULL_NAME.ToUpper().StartsWith(term))
                .Select(a => new { id = a.AUTHOR_ID, name = a.FULL_NAME});

            return Json(authors, "application/json", Encoding.UTF8, JsonRequestBehavior.AllowGet);
        }

Javascript/Jquery

  $("#authorlist").tokenInput('/author/getauthors/' + $(this).val(), {
        hintText: "Select Authors",
        searchingText: "Searching..."
    });

実際にdata-autocomplete値を呼び出してその方法で ActionResult をトリガーすることで、より MVC の方法で JQuery を使用することをお勧めしますが、ご覧のとおり、迷子になりました。

$("#authorlist").tokenInput($(this).attr("data-autocomplete"), {
        hintText: "Choose authors"        
    });

誰でも助けることができますか?

4

1 に答える 1

3

TokenInput はqデフォルトで query パラメータを使用しますが、アクションではterm.

2 つのオプションがあります。

アクション シグネチャを変更します。

public ActionResult GetAuthors(string q)
{
}

TokenInput を構成します。

$("#authorlist").tokenInput($(this).attr("data-autocomplete"), {
        queryParam: 'term',
        hintText: "Choose authors"        
    });
于 2012-05-31T09:00:14.880 に答える