在ASP.NET MVC中,我们没有可以执行诸如自动完成之类的操作的控件(我们在Visual Studio中没有控件,就像在Web表单中一样)。
但是,是否仍然可以使用ASP.NET MVC中的文本框<自动完成'(就像在Google主页上找到的文本框一样)?
如果是这种情况,最好的方法是什么? JQueryUI?还是有其他方法可以获得这种功能?
感谢您的帮助。
答案 0 :(得分:4)
你的意思是像jquery ui中的那个?
答案 1 :(得分:2)
要在ASP.NET MVC中使用JQuery Autocomplete,您可以执行以下操作:
第1步:创建文本框
<%= Html.TextBox("searchBox",null,new { @class="large", autocomplete="on"}) %>
步骤2:创建执行搜索功能的操作(我使用NHibernate查询数据库,但关键是返回一个字符串,每个结果由换行符分隔)
public ActionResult Autocomplete(string q) {
var programs = programRepository
.Search(q)
.ToList()
.ConvertAll(x => x.ProgramName)
.ToArray();
return new ContentResult {Content = string.Join("\n", programs) };
}
第3步:打开HTML中的自动填充功能(放置在脚本块中)
$(document).ready(function() {
$('#searchBox').autocomplete("/Controller/Autocomplete", { autoFill: true, minChars: 2 });
});