Jquery Token Input不能从数据库中填充值,在ASP.NET MVC 3中。

3

我刚接触 jQuery Token Input,正在通过这个教程学习。

我想做什么?

我希望使用 jQuery Token input,在用户输入文本框中的值时显示数据库中的值。

我尝试了什么?

到目前为止,这是我的视图所呈现的内容...

视图

<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'的字符串字段。


你的“联系人”类是怎样的? - nemesv
你调试过了吗?你在控制器上接到电话了吗? - bhuvin
你能发布Contact类的实际代码吗?因为我认为你的问题与属性名称大小写有关... - nemesv
是的...你必须有!:P - bhuvin
问题已解决!只需要按特定方式输出JSON即可.. :) 谢谢! - Yasser Shaikh
2个回答

3
更新:使用jQuery Tokeninput和ASP.NET MVC 3 Razor 感谢@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"},
    ...
]

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接