文章教程

19.6后台管理模块

8/31/2020 9:52:39 PM 人评论 次浏览

19.6 后台管理模块

后台管理模块由管理唱片、编辑唱片、创建唱片、删除唱片和删除成功这5个功能组成。每个功能由控制器和视图共同实现。

19.6.1 管理唱片页面

管理唱片页面控制器动作方法Index在Controllers文件夹下的StoreManagerController.cs文件夹中定义,关键代码如下:

alt

以上代码中,第1行定义动作方法Index。第2行获取包含演唱者对象数据的唱片类型的列表集合。第4行将该对象返回到视图。

设计对应与动作方法Index的视图,该视图在Views文件夹下StoreManager子文件夹下的Index.aspx文件中定义,关键的HTML代码如下:

alt

代码说明:第2行~第15行用一个表格来显示唱片的数据。第3行设置表格的标题。第4行通过常用的foreach循环语句,在从控制器传递到视图的Model数据中,分别获取唱片的标题、演唱者和唱片类型。其中第7行~第8行使用了HTML中的扩展方法ActionLink,设置“编辑”和“删除”链接,用于编辑指定记录或删除该记录。第16行设置“添加新唱片”链接,用于添加新的唱片数据。

设计后唱片管理视图的界面如图19-12所示。

alt

图19-12 设计后唱片管理界面

19.6.2 编辑唱片页面

编辑唱片页面控制器动作方法Edit在Controllers文件夹下的StoreManagerController.cs文件夹中定义,关键代码如下:

alt

代码说明:第1行定义动作方法Edit,参数是唱片的编号。第2行~第6行实例化唱片管理模型视图类的对象viewModel,其中,第3行获得指定产品编号的唱片对象作为viewModel对象Album属性的值。第4行获得唱片类型列表集合作为viewModel对象Genres属性的值。第5行获得演唱者对象列表作为viewModel对象Artists属性的值。第7行返回viewModel对象到视图。

第9行定义一个重载的动作方法Edit,参数是唱片的编号和表单集合对象。第10行指定唱片编号的唱片对象album。第12行调用UpdateModel方法更新唱片对象album。第13行保存数据库的更改。第14行重定向到管理产品的视图。如果第12更新失败则第17行~第21行实例化唱片管理模型视图类的对象viewModel,其中,第18行获得指定产品编号的唱片对象作为viewModel对象Album属性的值。第19行获得唱片类型列表集合作为viewModel对象Genres属性的值。第22行返回viewModel对象到编辑唱片视图。

该视图定义在Views文件夹下StoreManager子文件夹下的Edit.aspx文件中。关键的HTML代码如下:

alt

代码说明:第2行指定启用客户端脚本来执行输入验证。第3行定义使用一个表单。第4行启用显示验证错误的列表。第5行~第10行定义一个边框。第7行和第8行使用Html的EditorFor方法显示EditorTemplates文件夹下的模板Album.ascx用户控件模板,在该模板中定义了显示唱片对象的HTML代码。第9行定义一个“保存”按钮。第12行定义一个“返回列表”的超链接。

设计后编辑唱片视图的界面如图19-13所示。

alt

图19-13 设计后编辑唱片界面

19.6.3 删除唱片页面

删除唱片页面控制器动作方法Delete定义在Controllers文件夹下的StoreManagerController.cs文件夹中,关键代码如下:

alt

代码说明:第1行定义动作方法Delete,方法的参数是唱片的编号id。第2行调用实体数据模型上下文对象storeDB中唱片对象Albums的Single方法获得指定唱片编号的唱片对象album。第3行将该对象传递到对应的Delete视图中。

第5行属性表示下面的方法只接受用户通过Post方法发送表单数据。第6行定义了一个重载的Delete动作方法,方法的参数是唱片编号id和FormCollection窗体传递值的集合对象。第7到第9行行获取包含订单详情和购物车数据的指定唱片编号的唱片对象album。第10行调用DeleteObject方法删除该唱片对象。第11行调用SaveChanges方法将修改的数据保存到数据库。通过第12行将数据传递到对应的Deleted视图。

设计对应与动作方法Delete的视图,该视图定义在Views文件夹下StoreManager子文件夹下的Delete.aspx文件中。关键的HTML代码如下。

alt

代码说明:第2行~第4行在段落标记中显示删除确认唱片的标题。第6行定义一个表单。第7行显示一个“删除”按钮。

设计后删除唱片视图的界面如图19-14所示。

alt

图19-14 设计后删除唱片界面

本模块中创建唱片、删除成功这两个功能的控制器和视图与以上介绍的三个功能类似,这里不再进行详细说明,读者可参考光盘中的源代码进行学习。

教程类别