Asp.net MVC2学习笔记2-Controller

来源:互联网 发布:中海达手簿软件 编辑:程序博客网 时间:2024/05/21 12:17

上次我们说到了route 路由的功能,整个mvc运行过程:

Route(路由) --> Controller(控制器)-->action(方法)

这次我们要说的就是 controller 控制器 和 action(方法):

控制器的作用就是:当一个 Request (我标:如URL请求,找到对应的Route路由,然后就是上面的运行过程)来的时候,首先Route 解析找到对应的控制器,控制器再根据 action决定给我们返回什么样的内容。如:

代码

public class MyControllerController : Controller    {  

  public ActionResult MyAction(DateTime dt)  

  {  

    ContentResult cr = new ContentResult();  

   cr.Content = "MyController's MyAction is Workded!" + dt.ToString("yyyy年MM月dd日");  

     return cr;  

  }  

        public void MyTest()  

   {  

            Response.Write("hhhh");  

       }  

    }  

首先: 控制器类必须继承 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的实现原理吧,如果有一个例子就更好了)呵呵直接地址栏访问控制器的方法就可以了,呵呵,不过现在还是最“简陋”的时候。

 

 

 
0 0
原创粉丝点击