Asp.net MVC2学习笔记2-Controller

 

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

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

 

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

 

控制器的作用就是:当一个 Request 来的时候,首先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,返回类型有好几种如:

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 是不是 很爽?呵呵直接地址栏访问控制器的方法就可以了,呵呵,不过现在还是最“简陋”的时候。

 

 

posted @ 2010-01-12 13:18  -Enchant  阅读(3105)  评论(2编辑  收藏  举报