MVC执行顺序

时间:2024-08-17 16:03:08

MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下:
  1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteConfig.RegisterRoutes(RouteTable.Routes); 来注册路由规则。
  2)RouteConfig.RegisterRoutes()方法里,给出的默认规则为{controller}/{action}/{id} .
  a. 在有特别需要的时候,到这里来修改规则。
  b. 未指明Controller默认为HomeContoller,未指定Action默认为Index, 也就是说,直接访问站点时,会默认导航到HomeController下的Index Action.
  c. Action后跟的内容会被映射为名为id的参数。 比如: User/Delete/1 会匹配到 UserController的 Delete(int id) 方法。
  d. Action分为[HttpGet]和[HttpPost]两种,与HTTP的GET和POST方式对应。 即直接请求的URL只会匹配[HttpGet]方法,而未注明[HttpPost]的方法即默认为[HttpGet]. Post的Action一般会有一个Model参数,MVC会自动将表单里的数据按约定的规则填充到Model实体对象里。 这个约定的规则,就是表单的Name与属性名称有个对应规则。
  3)MVC负责按上述规则将执行流程导入合适的Action中,即Controller的某个方法中。
  4)Action中,可以直接返回字符串,输出到浏览器, 也可以返回到ActionResult对象, 该对象指向一个View页面,并且附带了一些属性作为传递数据的容器。

http://zhidao.baidu.com/link?url=5HbLsNS0bMZAGnhaZpdbP1GhpxlRToOjeJAddF5yfqoUSq3Ceyrn8V2tF-7E39RvdczxygRr3MPHffl4V__r5_