走入asp.net mvc不归路:[2]控制器概览

asp.net mvc中最灵活的地方就是控制器,这里能够验证数据,能够跳转视图,还能够访问数据库等等。因此,咱们要先从这里提及。数据库

1 控制器就是继承了Controller的类,通常来讲,类名后面都会增长"Controller"字样,asp.net mvc是一个约定优先的框架,在这里就能看到一点点端倪,接下来还要涉及到其余约定mvc

clipboard

2 这个控制器里面,有一些方法,其中图示的public而且返回值为ActionResult的方法就是所谓的Action,能够理解为动做、行为、功能等;图示就是登陆功能。框架

clipboard[1]

3 在控制器中有各类元标记,如登陆验证,HttpPost方法等;其中[Authorize]表示访问该控制器的任何动做,都须要登陆,不然,则跳转到登陆页面;而咱们知道一个http请求,分为get和post方法,[HttpPost]就是用来指定只容许post请求访问的。asp.net

clipboard[2]

4 有时为了程序的须要,会定义一些辅助方法,通常来讲,这些方法是private的post

clipboard[3]

5 post方法中,通常会使用Model来保存数据,这个模型能够验证数据合法性,好比登陆时,用户名不容许为空,密码应大于6位等;能够用ModelState.IsValidate来判断提交过来的数据是否合法,不合法的话,就返回。学习

clipboard[4]

6 在Action中能够直接返回一个视图,即return View(),而这个View()方法,重载多个方法,能够代入上面说到的模型,如此一来,当提交的数据有误时,直接返回时,原来的数据还会保留在原来页面.net

clipboard[5]

7 上面说到,没有指定相应的视图名,可是仍旧可以正常返回,为何?这个就是上面提到约定。若是不指定视图名称,则系统会到默认的视图文件夹去寻找这个视图,寻找视图的会按照必定的顺序遍历,若是找到,则返回,不然往下寻找:首先搜索的是这个控制器对应的视图文件夹,事实上是有一个名叫Register的视图的,这样就找到了blog

clipboard[6]

8 能够这样子指定返回的视图名称,仍然能够带入与视图相应的Model继承

clipboard[7]

9 这样一来,在/Views/Account/文件夹下就找不到NoResource这个视图了,怎么办?框架会找到公共视图文件夹/Views/Shared/,图示是有这个视图的,因此上一步那样返回也不会出错;若是再找不到,那程序才会报错ip

clipboard[8]

10 控制器还能够控制其余方式的跳转;这样能够指定到其余控制器,图示为退出登陆功能,一旦退出,则跳转到首页控制器的Index动做,即首页

clipboard[9]

11 实际上/Home/Index和/Home是同样的,由于默认状况下,只提供控制器的时候,框架会自动寻找Index方法,这个也是约定优先的另外一个例子

12 控制器概况就先介绍到这里。祝您学习愉快!

本人原创,转载请注明出处。更佳视觉排版请移步:http://t.cn/RPJist6

相关文章
相关标签/搜索