上次我们说到了route 路由的功能,整个mvc运行过程:
Route(路由) --> Controller(控制器)-->action(方法)
这次我们要说的就是 controller 控制器 和 action(方法):
控制器的作用就是:当一个 Request (我标:如URL请求,找到对应的Route路由,然后就是上面的运行过程)来的时候,首先Route 解析找到对应的控制器,控制器再根据 action决定给我们返回什么样的内容。如:
首先: 控制器类必须继承 Controller,这个我们新建controller 的时候 都已经给我们继承好了,这里我们起了一个名字叫“MyController”;这里控制器命名规则会在最后自动加后缀Controller,如:TestController……
这里在控制器里面我们写了2个方法,首先第一个MyAction,接收的参数是DateTime型的dt,这里我们第一个笔记已经说到了url 规则里面的 {dt}参数,这里我们这样接收到我们url里面所传递的参数;返回类型是 ActionResult(我注:这里的ActionResult我想应该就是一个接口,下面的几种返回类型应该就是它的实现,应该就是运用多态),
返回类型有好几种如:
ViewResult:一般呈现某个aspx文件,由View方法返回。
RedirectToResult:使浏览器重定向,由Redirect方法返回。
RedirectToRouteResult:直接交给下一个Action,由RedirectToAction方法返回。
ContentResult:以文字形式返回
上面是常用的几种还有些 JSONResult/javascriptReulst 了,大家可以看一下Result就可以了(我注:不理解是什么意思,知道的朋友麻烦告诉一下,谢谢)
MyAction 是以文字形式的结果返回,则当我们输入
http://localhost:2235/myRoute/2010-1-10
则会接收到页面传递过来的2010-1-10 作为dt参数传递给MyAction 方法,并返回一段文字。
而下面的 MyTest()方法没有返回值,一样可以被我们mvc的route解析到执行。
我们在地址栏输入 http://localhost:2235/MyController/MyTest 时,一样可以解析到我们的MyTest()方法,这里面我们处理一些我们的逻辑就可以了,大家现在知道 mvc的route强处了吧,试想一想这种方式来做ajax 是不是很爽?(我注:想不大明白为什么用来做AJAX就很爽的,可能我还没有完全理解好AJAX的实现原理吧,如果有一个例子就更好了)呵呵直接地址栏访问控制器的方法就可以了,呵呵,不过现在还是最“简陋”的时候。
转自:http://www.cnblogs.com/bboy/archive/2010/01/12/1645025.html