快速业务通道

ASP.NET MVC教程:理解模型、视图和控制器

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19
("{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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号