C# 为什么不是';我的select2自动完成方法没有被执行吗?

C# 为什么不是';我的select2自动完成方法没有被执行吗?,c#,javascript,jquery,asp.net-mvc,jquery-select2,C#,Javascript,Jquery,Asp.net Mvc,Jquery Select2,我正在尝试在我的ASP.NETMVC4网站的主布局上实现 我希望它在用户开始键入(至少2个字母)后,立即调用我的方法,使用用户已经键入的字母查询数据库。除了,当我开始输入时,我的方法从未被调用。我输入了一些警报,我能够看到我输入的内容,但我想select2没有启动 以下是标签中的脚本和css引用: <script src="/Content/select2/select2.js"></script> <link href="/Content/select2/sele

我正在尝试在我的ASP.NETMVC4网站的主布局上实现

我希望它在用户开始键入(至少2个字母)后,立即调用我的方法,使用用户已经键入的字母查询数据库。除了,当我开始输入时,我的方法从未被调用。我输入了一些警报,我能够看到我输入的内容,但我想select2没有启动

以下是标签中的脚本和css引用:

<script src="/Content/select2/select2.js"></script>
<link href="/Content/select2/select2.css" rel="stylesheet" />

以下是my layout.cshtml文件中的搜索框:

<div class="navbar-header hidden-xs pull-right" style="padding-top: 10px; margin-left: 10px;">
  <input id="search" class="form-control" placeholder="Search..." type="text" data-autocomplete-url="/Home/AutoFillValues" />
</div>

这是我布局页面的底部,select2内容出现在这里:

<script src="/Scripts/jquery-1.9.1.min.js"></script>
<script src="/Scripts/bootstrap.min.js"></script>

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")
@RenderSection("scripts", required: false)

<script type="text/javascript">
    $(document).ready(function () {
        $("#search").select2({
            placeholder: "Search...",
            minimumInputLength: 2,
            ajax: {
                url: "~/Home/AutoFillSearch",
                dataType: 'jsonp',
                data: function(search) {
                    return {
                        q: search
                    };
                },
                results: function(search, page) {
                    return { results: data.Results };
                }
            }
        });
    });
</script>

@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“~/bundles/jqueryui”)
@Scripts.Render(“~/bundles/jqueryval”)
@RenderSection(“脚本”,必需:false)
$(文档).ready(函数(){
$(“#搜索”)。选择2({
占位符:“搜索…”,
最小输入长度:2,
阿贾克斯:{
url:“~/Home/AutoFillSearch”,
数据类型:“jsonp”,
数据:功能(搜索){
返回{
问:搜索
};
},
结果:功能(搜索,页面){
返回{results:data.results};
}
}
});
});
最后,这里是我的控制器方法(我还不担心这里的代码,我只想看到我的断点在第一行被击中…):

public ActionResult自动填充值()
{
//让所有的摔跤手和所有的队伍
var players=\u playerRepo.Query()。其中(w=>w.Division==“Division I”&&w.Conference!=null);
var schools=players.Select(w=>w.School.Distinct();
ArrayList=新建ArrayList();
foreach(学校中的var学校)
{
var hyperlinkFormat=“”;
//@HttpUtility.UrlEncode(Model.Team.Name、System.Text.Encoding.UTF8)
添加(string.Format(hyperlinkFormat,string.Format(罗斯特路径,学校),string.Format(罗斯特文本,学校));
}
foreach(玩家中的var玩家)
{
var hyperlinkFormat=“”;
//@HttpUtility.UrlEncode(Model.Team.Name、System.Text.Encoding.UTF8)
添加(string.Format(hyperlinkFormat,string.Format(RosterPath,player.School),string.Format(RosterText,player.School));
}
返回Json(list.ToArray());
}

我必须升级到jQuery 2.1(因为版本1.9和.live/.on函数存在问题),才能启动select2


现在我只需要将我的select2设置为styled…

您是否在控制台中看到任何消息。我曾经有一个“onkeydown”事件来测试它,这是我在字段中键入时唯一一次发生任何事情。现在没有发生任何事件。当我第一次打开控制台窗口时,出现一个错误,上面写着:“uncaughttypeerror:undefined不是一个函数”,它将它抛出jquery-unobtrusive-ajax.js行115尝试修复它,看看它是否解决了您的问题。如果该错误出现在select 2字段上,则可能导致异常行为$([a[data ajax=true]).live(“单击”,函数(evt){evt.preventDefault();异步请求(this,{url:this.href,键入:“GET”,数据:[]};})@drneel今晚我将尝试更新jquery,因为这就是我发布的上述评论/错误的问题。。。
public ActionResult AutoFillValues()
{
    // Get all wrestlers and all teams
    var players = _playerRepo.Query().Where(w => w.Division == "Division I" && w.Conference != null);
    var schools = players.Select(w => w.School).Distinct();

    ArrayList list = new ArrayList();

    foreach (var school in schools)
    {
        var hyperlinkFormat = "<a href=\"{0}\">{1}</a>";

        //@HttpUtility.UrlEncode(Model.Team.Name, System.Text.Encoding.UTF8)
        list.Add(string.Format(hyperlinkFormat, string.Format(RosterPath, school), string.Format(RosterText, school)));
    }

    foreach (var player in playerss)
    {
        var hyperlinkFormat = "<a href=\"{0}\">{1}</a>";

        //@HttpUtility.UrlEncode(Model.Team.Name, System.Text.Encoding.UTF8)
        list.Add(string.Format(hyperlinkFormat, string.Format(RosterPath, player.School), string.Format(RosterText, player.School)));
    }

    return Json(list.ToArray());
}