2010-05-05 53 views
1

在ASP.NET MVC中,我們沒有可以執行諸如自動完成之類的東西的控件(我們在Visual Studio中完全沒有控件,就像在Web表單中一樣)。如何在ASP.NET MVC中實現自動完成?

但是,是否仍然可以通過ASP.NET MVC中的文本框(如使用Google主頁上的文本框)獲得「自動完成」?

如果是這樣,那麼最好的方法是什麼? JQueryUI?或者有另外一種獲得這種功能的方法?

感謝您的幫助。

回答

4

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

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

+0

@ Chobo2 - 我剛剛檢查鏈接,這就是我想要的。不過,我想知道這是否是獲得該功能的唯一方式(即使用JQueryUI)。如果這是唯一的方法,那我就很好。 – Richard77 2010-05-05 18:13:31

+0

在JqueryUI之前。還有其他的其他自動完成插件。但就其他方面而言。我不這麼認爲。你可以推出自己的,但仍然會是JavaScript/jQuery。我不認爲有可能使用asp.net MVC(甚至不使用webforms)來完成自動完成,因爲您每次都必須回發帖子來發送他們正在輸入的字母。您需要某種排序的Ajax,使其工作。 – chobo2 2010-05-05 18:40:51

2

要使用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 }); 

});