快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19

ASP.NET MVC应用程序示例

用Visual Studio默认模板创建ASP.NET MVC Web应用程序时,会附带创建一个非常简单的实例程序,可以用来帮助理解ASP.NET MVC程序中的各个组成部分,本文我们就用这个示例进行讲解。

在Visual Studio 2008中点击“文件” > “新建项目”,选择“ASP.NET MVC”模板创建一个ASP.NET MVC应用程序,如图1所示,在新建项目对话框中,在项目类型下选择你熟悉的编程语言,如Visual Basic 或 C#,然后在模板下选择“ASP.NET MVC Web Application”模板,点击确定按钮。

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

图1 新建项目对话框

你在创建一个新的ASP.NET MVC应用程序时,会显示一个创建新的单元测试项目对话框,如图2所示,这个对话框让你可以单独为你的方案创建一个项目测试你的ASP.NET MVC应用程序,这里选择选项“不,不创建测试项目”,然后点击确定按钮。

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

图2 创建单元测试对话框

创建好ASP.NET MVC应用程序后,在方案浏览窗口你会看到有几个文件夹和文件,特别地,你会看到模型(Models)、视图(Views)和控制器(Controllers)三个文件夹,正如你从这些文件夹的名字猜测到的,这些文件夹包括了模型、视图和控制器的实现文件。

如果你展开控制器文件夹,应该会看到一个名叫HomeController.vb的文件,如果你展开视图文件夹,应该会看到两个子文件夹,一个是Home,一个Shared,如果你展开Hom文件夹,你应该会看到两个文件:about.aspx和Home.aspx(如图3所示)。这些文件就组成了使用ASP.NET MVC默认模板创建的应用程序。

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

图3 方案浏览窗口

通过选择菜单项“调试” > “开始调试”,可以运行这个示例程序,同样,按F5键也一样。

当你第一次运行ASP.NET MVC应用程序时,会显示图4所示的对话框,建议你开启调试模式,点击确定按钮后程序开始运行。

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

当你运行ASP.NET MVC应用程序时,Visual Studio会在你的浏览器中启动应用程序,示例应用程序由两个页面组成:Index页面和About页面。当应用程序第一次启动时显示Index页面(如图5所示),你可以点击程序右上角链接切换到About页面。

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

图4 调试没有开启对话框

注意浏览器地址栏中的URL,当你点击Home链接时,浏览器地址栏中的URL改变为/Home,当你点击About链接时,URL改成/About。

如果你关掉浏览器返回Visual Studio窗口,你看不到有Home和About文件存在,怎么可能呢?

一个URL不等于一个页面

当你构建一个传统的ASP.NET Web窗体应用程序或ASP应用程序时,一个URL就对应一个页面,它们是一对一的关系,如果你向服务器请求一个名叫SomePage.aspx的页面,那么在硬盘上都有一个文件的名字叫做SomePage.aspx,如果不存在这个文件,就会返回一个404 - Page Not Found的错误。

相反,在构建ASP.NET MVC应用程序时,URL和页面就不是一一对应关系了,在ASP.NET MVC应用程序中,一个URL对应一个控制器行为,而不是硬盘上的一个页面文件。

在传统ASP.NET和ASP应用程序中,浏览器请求被映射到页面,在ASP.NET MVC应用程序中,浏览器请求映射到控制器行为,ASP.NET应用程序是以内容为中心,相反,ASP.NET MVC应用程序是以应用逻辑为中心。

理解URL路由

浏览器请求通过ASP.NET MVC的一个叫做URL路由的特性映射到控制器行为,URL路由路由入站请求给控制器行为。

URL路由使用路由表处理入站请求,当你的应用程序第一次启动时创建这个路由表,路由表配置在Global.asax文件中,默认的MVC Global.asax文件内容如清单1所示。

清单1 Global.asax

Public Class GlobalApplication
   Inherits System.Web.HttpApplication
     Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.IgnoreRoute

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号