MVC
1.简单用户登陆
1.1结构
image.png1.2 详细内容
-
App_Start
文件夹RouteConfig.cs
用户通过Router里的路由的默认规则,通过Controller里的Index() 进入到View视图里的SysAdmin页面,此时,就有了一个登陆窗口。
image.png
-
-
View
文件夹AdminLogin.cshtml
用户输入密码账号后,点击登陆,首先通过页面中的Form表单,将数据提交到路由SysAdmin里的,AdminLogin方法。
image.png
-
-
Controllers
文件夹SysAdminController.cs
路由收到用户提交的表单信息,首先通过Request.Params获取数据,然后封装成一个Admin对象,
然后将该对象传递给BLL层的AdminLogin方法
image.png
-
-
BLL
中的SysAdminManager.cs
BLL层的AdminLogin方法接受到,用户输入的封装对象,然后给DAL层进行数据库查询,返回数据库查询结果,如果有这个用户,这返回用户对象,且保存用户对象的session。
image.png
-
-
DAL
中的SysAdminService.cs
处理上面封装的用户信息查询数据库,返回对象
image.png
-
-
Models
中的SysAmind.cs
用户对象的类
image.png
-
2.根据班级名称模糊查询班级
-
1.Views的SysAdmin文件
image.pngAdminLogin.cshtm
:登录之后,点击学院管理应该跳转到一个用户列表页,所以首先需要一个跳转的链接
-
2.Controllers的
image.pngStudentsController.cs
:通过这个链接的设定,我们定义了下面需要写的控制器的名称,需要添加一个Students的控制器,来控制所有学员操作,在添加一个StudentsManage的控制器方法
-
3.此时,用户就已经可以通过设置的路由跳转过来了,当用户在点击搜索的时候,控制器获取View传过来的ClassName,然后通过BLL的方法,再到DAL层进行查询,查询模型是Students这个类;至此这里的整个思维过程就结束。我们可以根据思维过程逆向编程,比如:①先写好Models层的Students类;②在到DAL里面编写,通过班级名称的查询①里面的学生类所需要的信息,然后封装到一个
List<Students> stuList
里;③BLL层处理查询出来的学生信息列表 ④控制器StudentsController.cs
接受到查询出来的列表,然后再交给View层;⑤View层拿到学生列表,然后进行列表填充;但是这里,我们使用顺着代码来写 -
4.写到控制器
image.pngStudentsController.cs
的时候,①首先需要接受用户提交查询的参数,②然后,需要学生查询后的列表 ③ 把查询出来的列表返回给View
-
5.这样控制器的框架我们就搭建完成了,然后,建立View层,完善4里面的1)写一个input标签和查询。
image.png
注意:红色的地方是获取session - 接下就是4步骤里面的2)了,需要BLL层来传递数据
SudentsManager.cs
image.png
- 接下就是4步骤里面的2)了,需要BLL层来传递数据
-
7.然后是编写DAL完善,BLL的方法
image.pngStudentsService.cs
-
8.然后根据查询,完善Models层Students类
image.png -
9.然后编写4步骤里的最后一步,View层接受数据,填充表格,
StudentsManage.cshtml
3.查询学员详情
-
1.通过get方法传递学生Id,到学生控制器里的,GetStudentDetail方法
image.png -
2.去Students的总路由里,编写StudentsDetail方法
image.png -
3.BLL,DAL通过学生ID查询单个学生的详情
image.png
- 4.通过ViewData[]方式传递到View层
GetStudentsDetail.cshtml
image.png
注意:这里我们ViewData获取到的数据时object类型,所以我们需要将其强转为Students类型,来获取里面的数据 - 这里有个问题就是:我们在详情的视图里强制转换了类型,改进,改为在控制器里传递学生类
4. 数据传递方法汇总
4.1 TempData跨请求数据传递
用于不同控制器 之间传递数据