首页 / 网页编程 / ASP.NET / ASP.NET创建自定义数据控制器基类
ASP.NET创建自定义数据控制器基类2010-11-05无论什么时候,你在写代码时都会发现其实你在一遍又一遍地编写着同样类型的代码,现在是时候停下来考虑一下你是否正在浪费者大量的时间。昨天,我发现在创建一个数据库驱动的 MVC应用程序时,我的确处在这样一种情形中。我不得不为应用程序中的每一个数据库表进行标准的操作——显示数据、更新数据、插入数据、删除数据。一遍又一遍地编写完全相同的代码,这种可怕的现象赋予我灵感,让我写下了今天这篇ASP.NET MVC Tip。MVC控制器就是一个类(Visual Basic或C#类)。既然是类,就可以支持继承。因此,如果你发现你正在为控制器action编写重复的代码,就有必要编写一个新的基类了,让它包含一组常见的action。在这个Tip中,我们一起来创建一个数据控制器基类,它能够执行标准的数据库操作。要记住,你也可以为其他类型的常见控制器action编写基类。我建立了一个名为DataController的控制器基类。该类提供了下列公共方法:Index()——显示一个数据表中所有的数据记录Details()——显示数据库表中的一条数据记录Edit()——显示一个视图,其中包含一个用于编辑现有数据记录的窗体Update()——更新数据库中的数据记录New()——显示一个视图,用于插入新的数据库记录Insert()——向数据库中插入一条新的数据记录Delete()——从数据库中删除一条现有记录由于这些方法都是公共的,所以每个方法都会暴露为一个action。你只要在Web浏览器地址栏中输入正确的URL,就能调用这些方法。DataController还包含一些受保护的方法:DBSave()——插入或更新数据库记录DBInsert()——插入新的数据库记录DBUpdate()——更新现有的数据库记录DBDelete()——删除现有的数据库记录DBGet()——获取单独一条数据库记录由于这些方法是受保护的,所以他们不能通过URL调用。然而,你可以在派生类中调用这些方法。这些都是有用的工具方法,你可以通过调用这些方法来实现派生类的控制器action方法。最后,DataController类还提供了下列方法:DataContext——LINQ to SQL数据上下文table——LINQ to SQL表IdentityColumnName——数据表中包含的标识列这些属性也是受保护的。你可以在派生类中使用它们,但他们不会被暴露为控制器action。