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”的 int 字段和两个名为“city”和“name”的字符串字段。

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 文档中找到了这个。

您的脚本应以以下格式输出 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 回答