首个ASP.NET MVC站点基本工作原理
上一节我们制作了第一个ASP.NET MVC站点,那它是如何工作的呢?
在Model-View-Controller(MVC)架构中,Controllers负责处理传来的浏览器请求,在ASP.NET MVC中Controllers仅仅是一些C#类(继承至框架中内置Controller基类System.Web.Mvc.Controller),Controller中的没有个公共方法都被称为Action方法,可以从页面通过URL地址来访问这些Action方法。现在我们已经有了一个名叫HomeController的Controller类和一个名为Index的Action方法。
还有一个路由系统,用来决定URL地址如何映射到特定的Controller和Action上。默认在Global.asax.cs文件中,框架为我们生成了默认的路由系统,方法名为RegisterRoutes。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
这段代码注册了默认的路由映射“{controller}/{action}/{id}”,如http://yoursite/article/getarticle/23这个URL,表示访问yoursite站点的名为article的Controller中的一个名为getarticle的Action方法,其中23是要传给这个Action方法的参数。
有一个特殊的情况,当使用如下URL时你访问的都将是HomeController中的Index方法。
• /
• /Home
• /Home/Index
这个方法就是上一节输出“Hello, ASP.NET MVC!”的方法。