我尝试使用@ url.action在我的dropDownList上添加jquery自动完成功能,但由于某种原因它无法正常工作。看起来我已经加载了所有必要的jquery。我已尝试过所有内容(至少是我在网站或谷歌中找到的那个)。
我的HTML + js :
<input id="test" name="test" />
@section scripts
{
@Scripts.Render("~/bundles/jqueryval")
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/autocomplete.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#test').autocomplete({
source: '@Url.Action("GetCitiesForAutocomplete", "Students")'
});
});
</script>
}
我的控制生:
public JsonResult GetCitiesForAutocomplete(string term)
{
return Json(GetCities()
.Where(x=>x.Text.ToLower()
.Contains(term.ToLower())), JsonRequestBehavior.AllowGet);
}
private List<SelectListItem> GetCities()
{
return new List<SelectListItem>
{
new SelectListItem {Text = "Jerusalem", Value = "0"},
new SelectListItem {Text = "Haifa", Value = "1"},
new SelectListItem {Text = "Tel Aviv", Value = "2"},
new SelectListItem {Text = "Katzrin", Value = "3"},
new SelectListItem {Text = "Beer Sheva", Value = "4"},
new SelectListItem {Text = "Netanya", Value = "5"}
};
}
我的问题是: 我如何使用列表中的文本在我的下拉列表中自动完成。
对于前: 如果我按下了&#39; je&#39; - &GT;我得到耶路撒冷&#39;
如果我按下了&#39; te&#39; - &GT;我得到特拉维夫&#39;
感谢。
答案 0 :(得分:1)
更改GetCitiesForAutoComplete方法以返回所有城市。自动填充功能将处理过滤。
public JsonResult GetCitiesForAutocomplete()
{
return Json(GetCities(), JsonRequestBehavior.AllowGet);
}