MVC程序实现Autocomplete功能

为了加强MVC的功力,加强练习是少不了的事情。Insus.NET这次想实现文本框的autocomplete功能。

在数据创建一张表[PinYin]:
MVC程序实现Autocomplete功能

插入一些数据:

INSERT INTO [dbo].[PinYin] ([Word]) VALUES ('a'),('ai'),('an'),('ang'),('ao'),
('ba'),('bai'),('ban'),('bei'),('ben'),('bi'),('bian'),('bie'),('bin'),('bing'),
('ca'),('cai'),('cang'),('cao'),('ceng'),('cha'),('chai'),('che'),('chen'),('cheng'),('chong'),('chou'),
('fa'),('fan'),('fang'),('fei'),('fen'),('feng'),('ga'),('gai'),('gan'),('gang'),('gao'),('ge'),('gei'),
('gen'),('geng'),('gong'),('gou'),('gu'),('gua'),('guai')
GO
View Code


并创建一个存储过程usp_PinYin_GetWord:
MVC程序实现Autocomplete功能


在MVC应用程序的Models目录下,创建一个PinYin model:
MVC程序实现Autocomplete功能


读取数据库数据,创建一个Entity,展开Entities目录:
MVC程序实现Autocomplete功能


接下来,在应用程序右键,启动Manage NuGet Packages...
MVC程序实现Autocomplete功能


安装jQuery UI:
MVC程序实现Autocomplete功能



它会把相关的css和js分别安装在应用程序的Content:
MVC程序实现Autocomplete功能

和scripts目录:
MVC程序实现Autocomplete功能

接下来,我们需要创建一个Handler,它有点像Service一样,请求与处理用户所在文本框输入的文本。你先要在应用程序下创建一个Handlers目录,如果存在,可略过此步。
MVC程序实现Autocomplete功能


注意,上图代码第#10行代码,如果修改与添加了命名空间namespace,你还得打开Handler.ashx的markup添加与修改namespace:
MVC程序实现Autocomplete功能


MVC程序实现Autocomplete功能


现在我们只是练习,在Controllers目录下,打开HomeController控制器创建一个ActionResult:
MVC程序实现Autocomplete功能

 一切写好,就可以写View视图了:
MVC程序实现Autocomplete功能


上面的代码中,#5步可以根据实际需要,最终显示于文本框中的是值还是文本。

实时操作演示一下:
MVC程序实现Autocomplete功能