




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
了解模型、视图和控制器/zh-cn/dd408936不太了解模型、视图和控制器?在本教程中,Stephen Walther 将向您介绍 ASP.NET MVC 应用程序的不同部分。了解模型、视图和控制器本教程对 ASP.NET MVC 的模型、视图和控制器提供了高层面的概述。换句话说,它解释了 ASP.NET MVC 中的 M、V和C。阅读本教程后,您将会了解 ASP.NET MVC 应用程序的不同部分如何协同工作。您还将了解 ASP.NET MVC 应用程序的层次结构与 ASP.NET Web Forms 应用程序或 Active Server Pages 应用程序层次结构的不同之处。示例 ASP.NET MVC 应用程序用于创建 ASP.NET MVC Web 应用程序的默认 Visual Studio 模板包括一个非常简单的示例应用程序,可以使用该应用程序了解 ASP.NET MVC 应用程序的各个不同部分。在本教程中,我们将利用这个简单的应用程序。通 过启动 Visual Studio 2008 并选择菜单项 File,New Project,使用 ASP.NET MVC 模板可以创建新的 ASP.NET MVC 应用程序(如图 1 所示)。在 New Project 对话框中,在 Project Types 下选择自己偏爱的编程语言(Visual Basic 或 C#),然后在 Templates 下选择 ASP.NET MVC Web Application。单击 OK 按钮。图 1:New Project 对话框(单击查看大图)在创建新的 ASP.NET MVC 应用程序时,将出现 Create Unit Test Project 对话框(如图 2 所示)。通过这个对话框可以在自己的解决方案中创建单独的项目,以测试 ASP.NET MVC 应用程序。选择选项 No, do not create a unit test project,然后单击OK按钮。图 2:创建 Unit Test 对话框(单击查看大图)创 建新的 ASP.NET MVC 应用程序后,您将可以在 Solution Explorer 窗口中看到若干个文件夹和文件。具体地说,您将可以看到三个文件夹,名称分别为 Models、Views 和 Controllers。可以从文件夹名称中猜出,这些文件夹包含用于实现模型、视图和控制器的文件。如果展开 Controllers 文件夹,则应该看到名称为 HomeController.cs 的文件。如果展开 Views 文件夹,则应该看到两个名称为 Home 和 Shared 的子文件夹。如果展开 Home 文件夹,则将看到两个其他的文件,名称为About.aspx和Home.aspx(如图 3 所示)。这些文件组成了默认 ASP.NET MVC 模板中包含的示例应用程序。通过选择菜单选项 Debug, Start Debugging,可以运行示例应用程序。也可以按 F5 键运行。在第一次运行 ASP.NET 应用程序时,将出现图 4 中的对话框,建议启用调试模式。单击 OK 按钮运行应用程序。图 4:Debugging Not Enabled 对话框(单击查看大图)在 运行 ASP.NET MVC 应用程序时,Visual Studio 将在 Web 浏览器中启动应用程序。示例应用程序由两个页面组成:Index 页面和 About 页面。当应用程序第一次启动时,将出现 Index 页面(如图 5 所示)。通过单击应用程序右上方的菜单链接可以导航至 About 页面。图 5:Index 页面(单击查看大图)请注意浏览器地址栏中的 URL。在单击 Home 菜单链接时,浏览器地址栏中的 URL 更改为 /Home。在单击 About 菜单链接时,浏览器地址栏中的 URL 更改为 /About。如果关闭浏览器窗口并返回 Visual Studio,则找不到名称为 Home 或 About 的文件。这些文件不存在。这是怎么回事呢?URL 和页面并不是对等的在 构建传统的 ASP.NET Web Forms 应用程序或 Active Server Pages 应用程序时,URL 和页面是一一对应的。如果从服务器上请求名称为 SomePage.aspx 的页面,则硬盘上最好有名称为 SomePage.aspx 的页面。如果 SomePage.aspx 文件不存在,则将出现 404 Page Not Found 错误。相反,在构建 ASP.NET MVC 应用程序时,在浏览器地址栏中键入的 URL 和应用程序中的文件不存在对应关系。在 ASP.NET MVC 应用程序中,URL 对应的是控制器操作,而不是硬盘上的页面。在 传统的 ASP.NET 或 ASP 应用程序中,浏览器请求是映射到页面上的。在 ASP.NET MVC 应用程序中,浏览器请求是映射到控制器操作的。ASP.NET Web Forms 应用程序关注的是内容。相反,ASP.NET MVC 应用程序关注的是应用程序逻辑。 了解 URL 路由浏览器请求通过一项名为 URL 路由的 ASP.NET MVC 功能映射到控制器操作。URL 路由将进入的请求发送给控制器操作。URL 路由使用路由表处理进入的请求。此路由表在应用程序第一次启动时创建。路由表在 Global.asax 文件中设置。默认的 MVC Global.asax 文件包含在程序清单 1 中。程序清单 1 Global.asax1. usingSystem;2. usingSystem.Collections.Generic;3. usingSystem.Linq;4. usingSystem.Web;5. usingSystem.Web.Mvc;6. usingSystem.Web.Routing;7. 8. namespaceMvcApplication19. 10. publicclassGlobalApplication:System.Web.HttpApplication11. 12. publicstaticvoidRegisterRoutes(RouteCollectionroutes)13. 14. routes.IgnoreRoute(resource.axd/*pathInfo);15. routes.MapRoute(16. Default,17. controller/action/id,18. newcontroller=Home,action=Index,id=19. );20. 21. 22. protectedvoidApplication_Start()23. RegisterRoutes(RouteTable.Routes);当 ASP.NET 应用程序第一次启动时,调用 Application_Start() 方法。在程序清单 1 中,该方法调用 RegisterRoutes() 和 RegisterRoutes() 方法创建默认的路由表。默认的路由表中包含一个路由。该默认路由将所有进入的请求拆分为三个单元(URL 单元是正斜杠之间的所有内容)。第一个单元映射到控制器名称,第二个单元映射到操作名称,最后一个单元映射到传递给操作名称 ID 的参数。 例如,考虑下面的 URL:/Product/Details/3 此 URL 被解析为如下三个部分:Controller = ProductControllerAction = DetailsId = 3请注意,前缀控制器被附加到控制器参数的末端。这只是 MVC 的一个特殊之处。默认路由包括所有三个单元的默认值。默认控制器是 HomeController,默认操作是 Index,而默认 ID 是一个空字符串。请观察这些默认值,考虑如何解析下面的 URL:/Employee此 URL 被解析为如下三个参数:Controller = EmployeeControllerAction = IndexId = “”最后,如果打开 ASP.NET MVC 应用程序而不提供任何 URL(例如 http:/localhost/),那么 URL 将被解析为:Controller = HomeControllerAction = IndexId = “”请求将被发送到 HomeController 类上的 Index() 操作。了解控制器控制器负责控制用户与 MVC 应用程序的交互方式。控制器决定在用户发出浏览器请求时向用户发送什么样的响应。控制器只是一个类(例如,Visual Basic 或 C# 类)。示例 ASP.NET MVC 应用程序包括一个名称为 HomeController.cs 的控制器,该控制器位于 Controllers 文件夹内。HomeController.cs 的内容如程序清单 2 所示。程序清单 2 HomeController.cs1. usingSystem;2. usingSystem.Collections.Generic;3. usingSystem.Linq;4. usingSystem.Web;5. usingSystem.Web.Mvc;6. 7. namespaceMvcApplication1.Controllers8. 9. publicclassHomeController:Controller10. 11. publicActionResultIndex()12. 13. ViewDataTitle=HomePage;14. ViewDataMessage=WelcometoASP.NETMVC!;15. returnView();16. 17. 18. publicActionResultAbout()19. 20. ViewDataTitle=AboutPage;21. returnView();22. 23. 24. 请注意,HomeController 有两个方法,名称为 Index() 和 About()。这两个方法对应于控制器公开的两个操作。URL /Home/Index 调用 HomeController.Index() 方法,而 URL /Home/About 调用 HomeController.About() 方法。控制器中的任何公共方法都作为控制器操作被公开。请小心对待它们。这意味着通过向浏览器输入正确的 URL 来访问 Internet 的任何人都可以激活包含在控制器中的任何公共方法。了解视图由 HomeController 类公开的两个控制器方法 Index() 和 About() 都返回了一个视图。视图包括发送到浏览器的 HTML 标记和内容。在使用 ASP.NET MVC 应用程序时,视图就等于页面。必须在正确的位置创建视图。HomeController.Index() 操作返回位于以下路径的视图:ViewsHomeIndex.aspxHomeController.About() 操作返回位于以下路径的视图:ViewsHomeAbout.aspx总之,如果要为控制器操作返回视图,则需要在 Views 文件夹中使用与控制器相同的名称创建子文件夹。在子文件夹中,必须创建与控制器操作名称相同的 .aspx 文件。程序清单 3 中的文件包含 About.aspx 视图。程序清单 3 About.aspx1. 3. 4. 5. AboutUs6. 7. TODO:Putaboutcontenthere.8. 9. 如果忽略程序清单 3 中的第一行,则其余大多数视图的内容都由标准的 HTML 组成。在此处,可以通过输入任何您想要的 HTML 修改视图的内容。视 图非常类似于 Active Server Pages 或 ASP.NET Web Forms 的页面。视图包括 HTML 内容和脚本。可以使用您偏爱的 .NET 编程语言(如 C# 或 Visual Basic .NET)编写脚本。使用脚本显示动态内容,如数据库中的数据。了解模型我们已经讨论了控制器和视图。要讨论的最后一个主题是模型。什么是 MVC 模型?MVC 模型包含所有视图或控制器不包含的应用程序逻辑。模型应该包含所有应用程序业务逻辑和数据库访问逻辑。例如,如果您正在使用 LINQ to SQL 访问数据库,那么您将在 Models 文件夹中创建 LINQ to SQL 类(dbml 文件)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山东铁投集团春季社会公开招聘46人笔试题库历年考点版附带答案详解
- 2025贵州省水利投资(集团)有限责任公司招聘84人考前自测高频考点模拟试题及完整答案详解1套
- 2025贵州省民族研究院第十三届贵州人才博览会引进人才1人模拟试卷及答案详解(必刷)
- 2025广东河源市连平县政务数据服务中心招聘就业见习人员2人模拟试卷(含答案详解)
- 2025安徽池州市贵池区事业单位招聘67人考前自测高频考点模拟试题及一套答案详解
- 2025中国建材集团有限公司所属企业招聘2人笔试题库历年考点版附带答案详解
- 2025协议样本:销售人员劳动合同书试用版范本
- 酒铺货协议书
- 安阳三全安全培训记录课件
- 协议书组价原则
- 人生的因拼搏而精彩课件
- 2025年国企综合笔试试题及答案
- 中药用药安全知识培训课件
- 老旧护栏加固施工方案
- 中国资源循环集团有限公司子公司招聘笔试题库2025
- 2025贵州贵安城市置业开发投资有限公司招聘32人考试参考题库及答案解析
- 2025年全国企业员工全面质量管理知识竞赛答题(含答案)
- 学堂在线 积极心理学(上)厚德载物篇 章节测试答案
- 预防青少年药物滥用-主题班会课件
- (正式版)QC∕T 625-2024 汽车用涂镀层和化学处理层
- 五年级信息科技上全册教案 浙教版2023年
评论
0/150
提交评论