Asp.net mvc 深读mvc运行机制

来源:互联网 发布:unity3d 模型插件下载 编辑:程序博客网 时间:2024/05/06 14:23

    通过之前的学习,貌似感觉学到一些东西,回想起来却感觉连贯不起来。每次上网都会使用别人写的功能,可我写的怎么就动起来了,如何知道我的代码在哪又怎么使得我的代码能动起来实现其相应功能,不知道其内部机制,我又乱了,沉思了.....MVC运行机制核心可以说是就是控制器的作用。必须配合MVC架构的规则来查找相关网页(文档)。MVC是通过“网址路径”实现的查找,即“网址路径”和“文档路径”关系是由所谓的“网址路由”协议定义的,这类似于我们上网时候用的路由器,随便创建一个人MVC程序,打开里面的App_Start文件夹下的RouteConfig.cs查看其代码:

public class RouteConfig    {        public static void RegisterRoutes(RouteCollection routes)        {            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");            routes.MapRoute(                name: "Default",                url: "{controller}/{action}/{id}",                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }            );        }    }
这里定义2个默认的网址路由:

1、IgnoreRoute:设置*axd等格式的网址路径不通过MVC运行(此处主要针对ASP.NET ),例如:asp.net内置的Trace.axd或默认的HttpHandler都不通过MVC处理,这样好处是可以使ASP.NET和MVC可以在同一个平台里面运行而互不影响。

2、MapRoute:是MVC定义网址路由的主要方式,其有3个参数:

      name:路由名称,你可以自定义,也可以默认Default;

      url:设置网址路径如何对应到控制器、动作和路由的值;

      defaults:设置url里面的{controller}/{action}/{id}三个参数值。

      从该MapRoute可以知道,当在浏览器中输入http://localhost/Home/Index时,{controller}的值为Home,{action}为Index,MVC会先进入Controllers目录中查找Home的控制器,即HomeControllers.cs文档,然后查找里面的public的Index方法,即MVC的Action动作,可以这么理解,action就是你的一个main函数,提供程序的入口。

这么一说,感觉又清晰了许多,刚开始入手mvc,有点慢,希望自己加快进度吧。


转载请标明出处http://blog.csdn.net/jasonhds/版权所有,翻版必究~谢谢合作

0 0
原创粉丝点击