SQL ServerMVC应用程序中,怎样控制及复制相同的法力

先押这个首《MVC程序实现Autocomplete功能》
http://www.cnblogs.com/insus/p/3546255.html 它是兑现利用jQuery实现文本框输入文字,出现下拉列表,自动就与择功能。

相信您的付出的MVC应用程序中,不止有唯一一个此AutoComplete功能。如果来差不多只时,或是不断新加时,你的Handlers目录下,肯定会出现多单ashx文件来支撑。每增加一个,就会错过复制然后修改其。因为这个ashx内处理的是未同类各自的多寡。

之所以被Insus.NET想起来,是否好所有AutoComplete只同用一个ashx文件呢?
是否能够化解与贯彻,但愿尝试一下。

本篇文章,将运用到接口(interface),反射(Reflection)等技术与学识。

为重新活与示范,Insus.NET根据前同一首的例证,再上加了另外一个AutoComplete:

开拓两独Handlerx.ashx文件,对比及发现:

只有高亮部分不等同,那是个别类实例化。
尚未关联,你懂得.NET编程,可以抽象或是接口它们。在此Insus.NET使用的凡接口。
每当MVC在应用程序的Interfaces目录下,创建一个IAutoCompletable接口:

接口实现了,程序将来还的AutoComplete功能实现,在Entity类别中实现这接口即可,不过本对曾经实现了底Entity,分别打开她来还实现即可:
看看PinYinEntity.cs被更改化怎样了:

另外的AbbreviatorEntity.cs类:

简单独八九不离十都无疑作了接口,并返了接口函数据种DataTable。以后有新的此类功能丰富时,commentout的法门代码,就不必再写了。
探望此间,我们当达标一丁点儿独八九不离十中,每个品种吃commentout的语法中,还有雷同句子是深受划掉的,它是的意是把DataTable转换为List<T>的。我好还转了头去押Handlerx.ashx文件,在#25~#26履代码,它的意是管List<T>系列化对象。

冲当时片介乎代码,Insus.NET决定另外写一个旅函数整合,是对准DataTable系列化的方式:

下Insus.NET在Handlers目录下,写一个AutoComplete.ashx文件,将取代以前Handlerx.ashx文件:

未来有着jQuery想实现AutoComplete的功用,只待引用这文件即可。此文件发出补加多一个参数,Insus.NET是为数量表名来区别,当然你啊堪按你的想法来定义是参数。

string tableName = context.Request["tableName"];

此ashx文件还采用了照(Reflection),即凡是冲所传的参数来反光到发出落实了接口IAutoCompletable.cs的切近。

连下去的办事,是本着那有的点滴独视图进行改动,每个视图中,只改变一句子代码:

 另一个视图:

 

明朝,再补偿加另外一个初的AutoComplete功能时,有视图中,再引用这词:

 url: "/Handlers/AutoComplete.ashx?tableName=xxx&prefix=" + request.term,

其中xxx是表示你的参考值。

说到底是巴实时操作演示:

下是MVC应用程序练习时源代码与数据库备份文件。
次是.NET Framework 4.5, 数据库也SQL Server 2012:
http://download.cnblogs.com/insus/MVC/InsusMVCSiteCS_2014_Feb14.rar 

 

相关文章