3

私は jQuery Token Input を初めて使用し、このチュートリアルを通じて学習しています。

私がしたいこと ?

ユーザーがjQueryトークン入力を使用してテキストボックスに値を入力すると、データベースから値を表示したいと思います。

これまでに何を試しましたか?

これまでのところ、これは私の見解がどのように見えるかです...

意見

<p>
Getting data from database using <i>token Input</i> =>
<input type="text" id="selectDb" />
</p>

<script type="text/javascript">
    $(document).ready(function () {

        $("#selectDb").tokenInput("@Url.Action("Search")");

    });
</script> 

</div>

以下は私のコントローラーアクションです。

コントローラーコード

[HttpGet]
public JsonResult Search(string q)
{
    var searchResult = Helper.SearchContact(q);
    return Json(searchResult, JsonRequestBehavior.AllowGet);
}

私の Helper.cs クラスコードは...

public static class Helper
{
    public static CRUDEntities1 Entities = new CRUDEntities1();

    public static IEnumerable<Contact> SearchContact(string s)
    {
        var searchResults = Entities.Contacts.Where(item => item.Name.Contains(s));

        return searchResults;
    }
}

どこが間違っているのかわかりません。これについて教えてください。ありがとう。

編集 : Contactは EntityFramework によって生成されるエンティティ モデル クラスであり、「id」と呼ばれる 1 つの int フィールドと、「city」および「name」と呼ばれる 2 つの文字列フィールドがあります。

4

2 に答える 2

3

更新: ASP.NET MVC 3 Razor で jQuery Tokeninput を使用する

@bhuvin などに感謝します。

解決しました、これをしなければなりませんでした...

[HttpGet]
public JsonResult Search(string q)
{
    var searchResults = Helper.SearchContact(q);
    var jsonResult = searchResults.Select(results => new { id = results.Id, name = results.Name, city = results.City });
    return Json(jsonResult, JsonRequestBehavior.AllowGet);
}

これは TokenInput のドキュメントhere にあります

スクリプトは、JSON 検索結果を次の形式で出力する必要があります。

[
    {"id":"856","name":"House"},
    {"id":"1035","name":"Desperate Housewives"},
    ...
]
于 2012-08-21T06:19:14.017 に答える
1

これは私のために働く:

ビューで:

<h2 id="theme">Facebook Theme</h2>
<div>
    <input type="text" id="authorlist" name="q" data-autocomplete="@Url.Action("GetAuthors", "Home")" />

</div>

スクリプト(javascript)で

<script type="text/JavaScript">
    $(document).ready(function() {

        $("#authorlist").tokenInput("@Url.Action("Search")", {
            theme: "facebook",
            preventDuplicates: true
        });

    });
</script>

コントローラーで:

[HttpGet]
public JsonResult Search(string q)
{
    q = q.ToUpper();
    var authors = db.StudentDB
        .Where(a => a.name.ToLower().StartsWith(q))
        .Select(a => new { id = a.id, name = a.name });

    return Json(authors,  JsonRequestBehavior.AllowGet);
}
于 2014-07-21T16:10:09.203 に答える