在 ASP.NET MVC 3 中,Jquery 令牌输入未填充数据库中的值
Posted
技术标签:
【中文标题】在 ASP.NET MVC 3 中,Jquery 令牌输入未填充数据库中的值【英文标题】:Jquery Token Input not populating values from database, in ASP.NET MVC 3 【发布时间】:2012-08-16 11:05:24 【问题描述】:我是 jQuery 令牌输入的新手,正在通过 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;
我不确定我哪里出错了,请指导我。谢谢。
编辑:Contact是EntityFramework生成的一个实体模型类,有一个叫做'id'的int字段和两个叫做'city'和'name'的字符串字段。
【问题讨论】:
你的Contact
班级怎么样?
你调试了吗?你接到了控制器上的电话??
能否贴出Contact类的实际代码?因为我认为您的问题在于属性名称大小写....
是的......你必须拥有! :P
解决了!只需要以特定方式输出 json .. :) 谢谢!
【参考方案1】:
更新: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",
...
]
【讨论】:
【参考方案2】:这对我有用:
在视图中:
<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);
【讨论】:
以上是关于在 ASP.NET MVC 3 中,Jquery 令牌输入未填充数据库中的值的主要内容,如果未能解决你的问题,请参考以下文章
自定义 asp.net mvc 3 jquery.validate.unobtrusive
ASP.Net MVC在AspNet Mvc使用JQuery AutoComplete组件
ASP.NET MVC 3 - Ajax.BeginForm 与 jQuery 表单插件
在 ASP.NET MVC Core 3.1 中通过 jQuery 为部分视图附加 html 的问题