我正在尝试在我的ASP.NET MVC 4网站的主布局上实现select2。
我想要它,一旦用户开始输入(最少2个字母),请调用我的方法使用用户已输入的字母查询数据库。除此之外,当我开始输入时,我的方法永远不会被调用。我提出了一些警告,我能够看到我正在键入的内容,但我认为select2没有触发。
以下是标记中的脚本和css引用:
<script src="/Content/select2/select2.js"></script>
<link href="/Content/select2/select2.css" rel="stylesheet" />
这是我的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>
最后,这是我的控制器方法(我不担心这里的代码,我只想看到我的断点在第一行被击中......):
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());
}
答案 0 :(得分:0)
我必须升级到jQuery 2.1(由于版本1.9和.live / .on函数的问题)才能让我的select2开始触发。
现在我只需要让我的select2风格......