在ASP.NET MVC中,我们没有可以执行诸如自动完成之类的东西的控件(我们在Visual Studio中完全没有控件,就像在Web表单中一样)。如何在ASP.NET MVC中实现自动完成?
但是,是否仍然可以通过ASP.NET MVC中的文本框(如使用Google主页上的文本框)获得“自动完成”?
如果是这样,那么最好的方法是什么? JQueryUI?或者有另外一种获得这种功能的方法?
感谢您的帮助。
在ASP.NET MVC中,我们没有可以执行诸如自动完成之类的东西的控件(我们在Visual Studio中完全没有控件,就像在Web表单中一样)。如何在ASP.NET MVC中实现自动完成?
但是,是否仍然可以通过ASP.NET MVC中的文本框(如使用Google主页上的文本框)获得“自动完成”?
如果是这样,那么最好的方法是什么? JQueryUI?或者有另外一种获得这种功能的方法?
感谢您的帮助。
你的意思是像jquery ui中的那个?
要使用JQuery Autocomplete在ASP.NET MVC中,你可以做到以下几点:
第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 });
});
@ Chobo2 - 我刚刚检查链接,这就是我想要的。不过,我想知道这是否是获得该功能的唯一方式(即使用JQueryUI)。如果这是唯一的方法,那我就很好。 – Richard77 2010-05-05 18:13:31
在JqueryUI之前。还有其他的其他自动完成插件。但就其他方面而言。我不这么认为。你可以推出自己的,但仍然会是JavaScript/jQuery。我不认为有可能使用asp.net MVC(甚至不使用webforms)来完成自动完成,因为您每次都必须回发帖子来发送他们正在输入的字母。您需要某种排序的Ajax,使其工作。 – chobo2 2010-05-05 18:40:51