【问题标题】:Jquery Token Input not populating values from database, in ASP.NET MVC 3在 ASP.NET MVC 3 中,Jquery 令牌输入未填充数据库中的值
【发布时间】: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 .. :) 谢谢!

标签: jquery asp.net-mvc-3 jquery-tokeninput


【解决方案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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      相关资源
      最近更新 更多