Asp.net MVC2学习笔记2-Controller
上次我们说到了 route 路由的功能,整个mvc运行过程:
Route(路由) --> Controller(控制器)-->action(方法)
这次我们要说的就是 controller 控制器 和 action:
控制器的作用就是:当一个 Request 来的时候,首先Route 解析 找到了 对应 控制器,控制器再根据 action 决定给我们返回什么样的内容。如:
{
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 是不是 很爽?呵呵直接地址栏访问控制器的方法就可以了,呵呵,不过现在还是最“简陋”的时候。