ASP.NET MVC教程:理解模型、视图和控制器
("{resource}.axd/{*pathInfo}")
'' MapRoute takes the following parameters, in order:
'' (1) Route name
'' (2) URL with parameters
'' (3) Parameter defaults
routes.MapRoute( _
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = ""} _
)
End Sub
Sub Application_Start()
RegisterRoutes(RouteTable.Routes)
End Sub
End Class
当一个ASP.NET应用程序第一次启动时,会调用Application_Start()方法,在清单1中,这个方法叫做RegisterRoutes()方法,RegisterRoutes()方法创建默认路由表。 默认路由表只有一条路由记录,它将所有入站请求分成三段,第一段映射到控制器名字,第二段映射到行为名字,最后一段映射到传递给行为的参数Id。 如下面的URL: /Product/Details/3 这个URL被解析成下面三部分: Controller = ProductController Action = Details Id = 3 注意后缀Controller跟在Controller参数的结尾,这仅仅是MVC的一个怪癖。 默认路由包括了这三段的默认值,默认控制器是HomeController,默认行为是Index,默认Id是空字符串,使用默认值时,思考一下下面的URL该如何解析: /Employee 这个URL被解析成下面三段: Controller = HomeController Action = Index Id = “” 请求被路由到HomeController类的Index()行为。 理解控制器 控制器控制用户与ASP.NET MVC应用程序交互的方式,由控制器决定向发送了请求的用户返回什么内容。 控制器就是一个类,ASP.NET MVC示例应用程序在控制器文件夹下只包括了一个名叫HomeController.vb的控制器,HomeController.vb的内容如清单2所示。 清单2 HomeController.vb Public Class HomeController Inherits System.Web.Mvc.Controller Function Index() ViewData("Title") = "Home Page" ViewData("Message") = "Welcome to ASP.NET MVC!" Return View() End Function Function About() ViewData("Title") = "About Page" Return View() End Function End Class 注意HomeController有两个方法(函数):Index()和About(),这两个方法对应控制器暴露的两个行为,URL /Home/Index调用HomeController.Index()方法,URL /Home/About调用 HomeController.About()方法。 控制器中所有公共方法都是以控制器行为方式暴露的,这意味着任何在浏览器地址栏敲入对应的URL都可以调用这些方法,这一点需要注意。 理解视图 HomeController类暴露了两个控制器行为:Index()和About(),它们返回的都是一个视图。视图包括HTML标记和发送给浏览器的内容,在ASP.NET MVC应用程序中,一个视图就相当于一个页面。 你必须在正确的位置创建你的视图,HomeController.Index()行为返回位于下列路径的视图: \Views\Home\Index.aspx HomeController.About()行为返回位于下列路径的视图: \Views\Home\About.aspx 通常,如果你想为控制器行为返回一个视图,你必须在视图文件夹下创建一个与控制器名字相同的子文件夹,在这个子文件夹中,还必须创建一个与控制器行为同名的.aspx文件。 清单3中显示了About视图文件的内容。 清单3 About.aspx <%@ Page Language="VB" MasterPageFile="~/View |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |