我是jQuery Token Input的新手,正在通过this教程学习。
我想做什么?
我想显示数据库中的值,因为用户使用jQuery Token输入将值键入文本框。
到目前为止我尝试了什么?
到目前为止,这是我的观点......
查看
<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;
}
}
我不确定自己哪里出错了,请指导我。感谢。
编辑:联系是由EntityFramework生成的实体模型类,有一个名为“id”的int字段和两个名为“city”和“name”的字符串字段。
答案 0 :(得分:3)
更新:Using jQuery Tokeninput with 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的文档here中找到了它。
您的脚本应按以下格式输出JSON搜索结果:
[
{"id":"856","name":"House"},
{"id":"1035","name":"Desperate Housewives"},
...
]
答案 1 :(得分: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);
}