版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第12章 ASP.NET MVC本章讲述的主要内容12.1 ASP.NET MVC概述12.2 ASP.NET MVC路由12.3 ASP.NET MVC控制器12.4 ASP.NET MVC视图和模型12.5 实训 设计一个用户管理程序12.1 ASP.NET MVC概述 ASP.NET MVC是Microsoft推出的新型ASP.NET应用程序开发模式,MVC是模型(Model)、视图(View)和控制器(Controller)3个单词的缩写,它意味着这种开发模式将一个应用程序分为模型、视图和控制器3个组成部分。Visual Studio 2015中内置的MVC版本为ASP.NET MVC
2、 5。12.1.1 MVC的构成1. 模型(Model)2. 视图(View)3. 控制器(Controller)12.1 ASP.NET MVC概述12.1.1 MVC的构成4. MVC的工作原理12.1 ASP.NET MVC概述12.1.2 Razor语法 ASP.NET MVC 5默认使用Razor语法来设计动态网页。由于Razor是通过System.Web.Mvc下的RazorViewEngine类来实现的,所以也称为“Razor视图引擎”。在ASP.NET MVC 5项目中使用的Razor视图引擎为基于Razor语法的Web网页第3版(也称为ASP.NET Web Pages 3)
3、。Razor的特点 利用Razor可以在视图(.cshtml)文件中混合使用C#和HTML、JavaScript、jQuery等服务器端和客户端语言。 Razor有非常简洁的语法格式。在视图文件中只需要使用一个“”符号就可以表示C#语句块或内联表达式。 Razor能自动对网页中输入的字符串进行HTML编码,可以有效地防范客户端脚本攻击。12.1 ASP.NET MVC概述12.1.2 Razor语法2. 使用Razor (1) 使用标记 标记表示其后跟随的是C#代码的一个内联表达式、单行语句或一个语句块。 (2) 使用Html.Raw()方法 对于HTML代码中出现的符号本身或双引号、单引号等
4、特殊符号,可以通过Html.Raw()方法进行转义。12.1 ASP.NET MVC概述12.1.3 创建MVC应用程序 参阅源代码:ex12-112.1.4 ASP.NET MVC项目的组成 1. 应用程序信息文件 Properties文件夹:项目属性文件夹,其中包含有一个名为“AssemblyInfo.cs”,用于保存程序集信息(如,名称、版本、版权等)的文件。该文件由项目属性窗口中各选项生成,一般不需要手工编辑。 引用文件夹(bin):用于存放系统运行所必须的外部引用(各类.dll文件)。12.1 ASP.NET MVC概述12.1.4 ASP.NET MVC项目的组成2. 项目文件夹
5、App_Data文件夹:用于存放项目中使用的数据文件或数据库文件,作用及功能与Web Forms项目中App_Data文件夹相同。 App_Start文件夹:用于存放配置类的代码文件,默认包含有一个名为“RouteConfig.cs”的路由配置文件,也就是ASP.NET MVC项目的“路由表”。 Controllers文件夹:用于存放项目中所有控制器文件的文件夹。 Models文件夹:用于存放项目中所有模型文件的文件夹。 Views文件夹:用于存放项目中所有视图的文件夹。每个视图以对应控制器名为子文件夹名,视图文件的扩展名为.cshtml。12.1 ASP.NET MVC概述12.1.4 AS
6、P.NET MVC项目的组成3. 配置文件 ApplicationInsights.config:监视配置文件,用于设置如何监视应用程序的运行情况。 Global.asax:全局配置文件,用于设置全局URL路由的默认值,在应用程序启动时可通过该文件执行一些特殊操作。 packages.config:项目中附加的软件包配置文件,由系统自动生成和管理,一般不需要程序员编写和修改。 Web.config:XML格式的网站或文件夹的配置文件。其作用与Web Forms项目中的web.config文件相同。12.2 ASP.NET MVC路由 MVC路由是指用来将用户请求与控制器对应的处理方法进行关联的
7、设置,它也是除了模型、视图和控制器外最为重要的一个概念,它分为入站和出站路由两种类型。在前面几章介绍过的Web Forms开发模式中所有的用户请求都会指向一个物理存在的文件(如.aspx、html等),而在MVC中用户请求则一律指向控制器中某个操作方法,并由该方法决定下一步的操作(打开视图、获取数据等)。12.2.1 MVC路由1. 注册路由 所谓“注册路由”就是通过存放在App_Start文件夹下的RouteConfig.cs所表述的RouteConfig类中定义的RegisterRoutes()方法,将URL、控制器及对应的Action关联起来12.2 ASP.NET MVC路由12.2.
8、1 MVC路由2. 从URL向控制器传递数据 MVC程序中可以通过Controller类的RouteData属性或查询字符串Request.QueryString进行页面间的数据传递。 参阅源代码:ex12-212.2 ASP.NET MVC路由12.2.2 通过路由实现超链接和页面跳转1. 通过路由创建超链接 在ASP.NET MVC项目中如果希望请求一个特殊的路由,可以使用HtmlHelper类中的RouteLink()方法,该方法用于动态的在页面中生成一个超链接。2. 通过路由实现页面跳转 在ASP.NET MVC项目中仍然可以使用Response.Redirect()方法实现页面跳转。
9、而更常用的方式是利用事先定义好的路由来实现页面间的跳转。12.3 ASP.NET MVC控制器 控制器继承于Controller类,Controller又继承于ControllerBase类。但由于ControllerBase类中包含的成员数量较少,而Controller却包含有非常丰富的成员,所以Controller类是控制器的默认实现,它负责以下几个处理阶段的工作: 查找要调用的Action方法,并验证该方法是否可以被调用。 获取要执行的Action方法的参数。 处理在执行操作期间可能发生的错误。 提供呈现视图的默认引擎。 在一个控制器中可以定义一个或多个Action方法,一个Action
10、方法可以也控制一个或多个视图。12.3 ASP.NET MVC控制器12.3.1 控制器的常用属性和方法1. ViewData和ViewBag属性 ViewData属性是一个ViewDataDictionary对象,是一个不区分大小写的由“键/值”(Key/Value)对组成的字典类型集合,也就是说ViewData中的每一个元素都由“键”和“值”一对数据组成。 ViewBag属性时ViewData的另一种表示形式,也是一种由“键/值”(Key/Value)对组成的字典类型集合。该属性返回的是一种动态数据类型(Dynamic),这种数据类型只有在进行编译时才会被系统处理。12.3 ASP.NET
11、 MVC控制器12.3.1 控制器的常用属性和方法2. TempData属性 TempData属性的作用与ViewData和ViewBag相似,也用来向视图传递数据。不同的是它可以实现在不同视图间进行数据传递。此外,TempData是一个临时的键值对数据集合,只能在当前请求时读取该对象,再次请求时其中的所有数据都会自动变成null。从MVC内部的实现来看,TempData实际上是通过Session来实现的,这样既可以区分不同的访问者,又能及时清除这些暂存的数据。 TempData的另一个典型用法是,在数据重定向到另一个Action方法之前先通过TempData存储要传递的数据,而后再从另一个A
12、ction中得到这些数据。12.3 ASP.NET MVC控制器12.3.1 控制器的常用属性和方法3. Server属性 控制器中,利用Controller类公开的Server属性可以获取ControllerBase类中定义的HttpServerUtility对象,然后通过该对象在服务器上执行一些特定的操作。 例如,对HTML字符串和URL字符串进行编码和解码、将虚拟路径转换成物理路径等。4. Request和Response属性 在Action方法或视图的C#代码块中,通过Request属性可以获取HttpRequestBase对象,从而进一步调用该对象提供的一些属性和方法。12.3 AS
13、P.NET MVC控制器12.3.2 控制器的Action方法1. Action方法参数的来源和映射 ASP.NET MVC框架可以将Action方法中的参数值自动映射到Action方法。在默认情况下,若Action方法带有参数,则ASP.NET MVC会检查是否存在同名参数,若有则自动传递给Action方法,无需再编写从请求中获取参数的代码。2. ActionResult的返回值类型 ActionResult类使所有操作结果的基础,多数Action方法会返回从该类派生的子类实例。例如,常见的操作是调用View()方法返回一个从ActionResult类派生的ViewResult类的实例。当然
14、也可以根据实际需要返回任意类型(如,字符串、整数或布尔值等)的对象。不管返回值是何种类型,它们在呈现到响应流之前,都会被封装在ActionResult类型的对象中。12.4 ASP.NET MVC视图和模型12.4.1 布局页的概念 布局页也称为母版页,是指可以被其它页面作为模板来引用的特殊网页,通常用来布局页面中固定不变的部分,与ASP.NET Web Forms项目中母版页(. master)的概念相似。布局页通常被保存在网站文件夹下的Views/Shared子文件夹中,并且其文件名都以下划线“_”开头(如,_Layout.cshtml等)。 布局页中使用RenderBody()方法指定视
15、图页或视图的显示位置,使用RenderSection()方法显示视图中定义的“节”的内容。12.4.2 使用布局页 参阅源代码:ex12-512.4 ASP.NET MVC视图和模型12.4.3 通过模型向视图传递数据 模型(Model)是ASP.NET MVC项目的数据接口。数据库、XML文件、Web API及其它各种服务(Web Service)中的数据都可以通过模型传递给控制器。用户提交的数据也可以通过模型传递给数据库。 通过模型向视图传递数据一般需要经过以下3个步骤,在Models文件夹下创建模型类;在控制器中获取模型数据;最后在视图中显示模型数据。本节将通过一个简单的示例说明通过模型向视图传递数据的具体实现。 参阅源代码:ex12-612.4 ASP.NET MVC视图和模型12.4.4 使用ADO.NET实体数据模型 在ASP.NET MVC项目中可以使用ADO.NET实体数据模型,创建能对数据库进行常规操作的应用程序。这种方式与在ASP.NET Web Forms项目中使用数据源控件类似,几乎不需要程序员编写任何代码,在向导的指引下即可十分方便的完成程序设计。 参阅源代码:ex12-712.5 实训 设计一个用户管理程序12.5.1 实训目的 通过本实训熟练掌握使用ADO.NET实体数据模型,创建用于管理SQL Server数据库的MVC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度绿色家居产品免责任协议书3篇
- 2025年度农村土地租赁与农业废弃物资源化利用项目合作合同2篇
- 二零二五年度全新音乐节演出活动承办服务合同3篇
- 2025年度年度合伙开设中式快餐连锁店合同3篇
- 2025年度农村土地互换与农业绿色发展合作协议
- 二零二五年度建筑用石材采购与加工合作协议3篇
- 二零二五年度现代化工厂生产线整体转让协议3篇
- 2025年度养老院老人外出社区活动安全保障合同3篇
- 二零二五年度金融科技基金公司投资合作协议3篇
- 二零二五年度房地产开发企业借款合同3篇
- 2021年贵安新区产业发展控股集团有限公司招聘笔试试题及答案解析
- 安全文化培训 (注册安工再培训)课件
- 色粉-MSDS物质安全技术资料
- 骨科学研究生复试真题汇总版
- 石油化工钢结构工程施工及验收规范
- 辽海版六年级音乐上册第8单元《3. 演唱 姐妹们上场院》教学设计
- 形势任务教育宣讲材料第一讲——讲上情
- 物业安全员考核实施细则
- 中国地质大学(武汉)教育发展基金会筹备成立情况报告
- 第四章破产法(破产法)教学课件
- PE拖拉管施工方案标准版
评论
0/150
提交评论