如何在ASP.NET MVC中获得自动完成功能?

时间:2010-05-05 17:12:09

标签: asp.net-mvc jquery-ui

在ASP.NET MVC中,我们没有可以执行诸如自动完成之类的操作的控件(我们在Visual Studio中没有控件,就像在Web表单中一样)。

但是,是否仍然可以使用ASP.NET MVC中的文本框<自动完成'(就像在Google主页上找到的文本框一样)?

如果是这种情况,最好的方法是什么? JQueryUI?还是有其他方法可以获得这种功能?

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

你的意思是像jquery ui中的那个?

http://jqueryui.com/demos/autocomplete/

答案 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 });

});