在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