Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 初学者:自动完成不起作用?_C#_Jquery_Asp.net Mvc_Autocomplete - Fatal编程技术网

C# 初学者:自动完成不起作用?

C# 初学者:自动完成不起作用?,c#,jquery,asp.net-mvc,autocomplete,C#,Jquery,Asp.net Mvc,Autocomplete,我正在尝试创建一个自动完成文本框。 这就是我的想法 @型号…. @{ ViewBag.Title=“创建”; Layout=“~/Views/Shared/_Layout.cshtml”; } @using(Html.BeginForm("Action","Controller")) { @Html.TextBoxFor(m=>m.myEmail) } @section Scripts{ @Scripts.Render("~/Scripts/jquery-ui-1.10.4

我正在尝试创建一个自动完成文本框。 这就是我的想法 @型号….
@{ ViewBag.Title=“创建”; Layout=“~/Views/Shared/_Layout.cshtml”; }

@using(Html.BeginForm("Action","Controller"))
{
   @Html.TextBoxFor(m=>m.myEmail)
}

@section Scripts{
    @Scripts.Render("~/Scripts/jquery-ui-1.10.4.min.js")

    <script type="text/javascript">
        $(function() {
            $("#myEmail").
                autocomplete({
                        source: '/App/Per',
                        minLength: 1,

                    }
                );   
        });

    </script>
}
例如,在浏览器中,当我检查chrome中的元素并检查
响应时,我会得到值

0: "Person1"
1: "Person2"
2: "Person3"
3: "Person4"
问题

我的自动完成框没有填充这些数据。难道我不应该在文本框的底部有一个上面有名字的列表框吗

编辑2:生成的HTML


创建-我的ASP.NET应用程序
创造 $(函数(){ $(“#我的邮件”)。 自动完成({ 来源:“/App/Per”, 最小长度:1, } ); });
除了CSS链接放错了位置外,没有什么东西看起来特别差。您可能希望尝试将JSON的格式设置为稍微不同的格式,这也会产生回答上一个问题的效果

与此相反:

public JsonResult Person(string term)
{
    var persons = FindPersons(term,"bkc@example.com","bk").ToArray();
    var fullnameList = persons.Select(person => person.FirstName + " " + person.LastName).ToList();
    return Json(fullnameList, JsonRequestBehavior.AllowGet);
}
尝试使用:

public JsonResult Person(string term)
{
    var persons = FindPersons(term,"bk@example.com","bk").ToArray();

    return Json(persons.Select(p => new { label = p.FirstName + " " + p.LastName, value = p.Email }), JsonRequestBehavior.AllowGet);
}

这是API说该小部件将处理的结果之一:

Javascript控制台中是否存在可以共享的错误?是否正确添加了对js的引用?没有Javascript错误,我将截图显示浏览器中加载的文件。你还为jQuery UI引用了CSS主题文件吗?@TiesonT。不,我没有,也许这就是问题所在。我应该在哪里引用它?在我的jquery-ui.js部分的末尾或之后,我的直觉或多或少是正确的:小部件没有正确解析JSON。看起来很奇怪,但是生活就是这样。
public JsonResult Person(string term)
{
    var persons = FindPersons(term,"bkc@example.com","bk").ToArray();
    var fullnameList = persons.Select(person => person.FirstName + " " + person.LastName).ToList();
    return Json(fullnameList, JsonRequestBehavior.AllowGet);
}
public JsonResult Person(string term)
{
    var persons = FindPersons(term,"bk@example.com","bk").ToArray();

    return Json(persons.Select(p => new { label = p.FirstName + " " + p.LastName, value = p.Email }), JsonRequestBehavior.AllowGet);
}