代码改变世界

ASP.NET MVC+LINQ开发一个图书销售站点(10):作者管理

2008-03-29 17:03  敏捷的水  阅读(2175)  评论(6编辑  收藏  举报

作者添加、删除、修改,基本和前面的目录管理类似,这里我们更多的用了些MVC 的Html Helper

1、前面我们把数据的存取全部放到BookShopDBDataContext分部类里,但是如果功能很多,那么比较凌乱,我们这里按每一个大点的功能放到一个文件里

    首先,我们Model里建立一个DALBase的抽象类,当然你也可以新建一个DAL层。

   image

2. 我们再建立一个AuthorDAL内容如下:

image

疑问:上面黄色的地方,我觉得很怪异,因为那个model我是从数据库里get出来的,但是如果这个是new出来的一个Author,而且authorId是数据库已有的,我的意思是直接根据new出来Author的对数据库来修改,不知有何方法,熟悉Linq的朋友可以告诉我下?

3. 浏览作者

(1).在Controller下新建一个AuthorController

image

(2)对应的,我们需要在View下新建一个Author目录,在Author目录下再建立一个AllAuthors.aspx

修改AllAuthors.aspx.cs如下:

image

(3) 修改AllAuthors.aspx如下,

image

注意,上面两个黄色突出显示的地方,我们用的是authorId而不是id,那么我们如果想Edit时地址显示为Edit/1或Edit/2等,而且能自动传给我们Action方法做参数,我们必须修改默认的路由,打开Global.asax,在最上面添加下面黄色的代码

image

(4) 由于没有数据,我们看到如下的效果:

image

4. 添加作者:

(1)修改AuthorController,添加如下方法:

image

(2).同样我们需要在View\Author目录下新建一个AddAuthor.aspx

修改AddAuthor.aspx如下:(黄色展示了MVC Html Helper的一些用法)

image

image image

5. 修改作者:

(1) 添加如下方法到AuthorController

image

(2)在View\Author下添加EditAuthor.aspx

修改EditAuthor.aspx.cs如下:

image

修改EditAuthor.aspx如下

image

疑问: 我用上面红色(注释掉的)的方法却不能走到EditSaved的Action,不知为何,而且报错,说是超出边界,哪位兄弟知道原因?谢谢!

image

6.删除作者

删除很简单,我们在AuthorController里添加如下方法即可

image

注意:这里没有添加验证,可以参考上面一篇blog的方法来添加验证。