已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ASP.NET MVC3 快速入门-第三节 添加一个视图ASP.NET MVC3 快速入门-第三节 添加一个视图分类:ASP.NET MVC2011-04-10 16:274145人阅读评论(2)收藏举报3.1添加一个视图 在本节中我们修改HelloWorldController类,以便使用视图来向客户端展示HTML格式的响应结果。我们使用ASP.NET MVC3中新增的Razor视图引擎来创建视图。Razor视图模板文件的后缀名为.cshtml,它提供了一种简洁的方式来创建HTML输出流。Razor视图大大减少了在书写视图模板文件时所需要输入的字符,提供了一个最快捷,最简便的编码方式。 这里,我们在HelloWorldController类的Index方法中添加使用一个视图。在修改前的Index方法中返回一个字符串,我们修改这个方法来使它返回一个视图,代码如下所示。public ActionResult Index()return View(); 这段代码表示Index方法使用一个视图模板来在浏览器中生成HTML格式的页面文件。接着,让我们来添加一个Index方法所使用的视图模板。在Index方法中点击鼠标右键,然后点击“添加视图”,将会弹出一个“添加视图”对话框。图3-1 添加视图图3-2添加视图对话框 在该对话框中,不做任何修改,直接点击添加按钮,观察解决方案资源管理器中,在MvcMovie项目下的Views文件夹下创建了一个HelloWorld文件夹,并且在该文件夹中创建了一个Index.cshtml文件,同时该文件呈打开状态,如图3-3所示。图3-3视图模板文件被创建并呈打开状态 让我们在该文件中追加一些文字,代码如代码清单3-1所示。 代码清单3-1 Index.cshtml视图模板文件ViewBag.Title = 首页;首页这是我的第一个视图模板 运行应用程序,输入地址“http:/localhost:xxxx/HelloWorld”。由于在Index方法中并没有做任何事情,只是简单地一行代码“return View()”,该行代码表示我们使用一个视图模板文件来在浏览器中展示响应结果。因为我们并没有显式指定使用哪个视图模板文件,所以使用了默认的Views文件夹下的HelloWorld文件夹下的Index.cshtml视图模板文件。该视图模板文件中只有简单的两行文字,在浏览器中的显示结果如图3-4所示。图3-4在浏览器中显示视图 看上去还不错,但是请注意,该网页的标题为“首页”,但是网页中的大标题文字却为“我的MVC应用程序”,需要修改一下。3.2修改视图,修改应用程序的页面布局 首先,让我们修改页面大标题中的“我的MVC应用程序”文字。这段文字是所有页面中的公共大标题,在这个应用程序中,虽然所有页面中都显示了这个共同的大标题,但只有一处地方对其进行了设置。打开解决方案资源管理器中Views文件夹下的Shared文件夹下的_Layout.cshtml文件。该文件被称为布局页面,位于公有文件夹Shared下,被所有其他网页所共用。图3-5公有布局页面 布局模板页允许你统一在一个地方指定整个Web应用程序或Web网站的所有HTML页面的布局方法。请注意文件底部的“RenderBody()”代码行。RenderBody()是一个占位符,代表了所有你创建出来的实际应用的视图页面,在这里统一指定。将布局模板文件中的“我的 MVC 应用程序”修改为“我的 MVCMovie 应用程序”。代码如下所示。我的MVCMovie应用程序 运行应用程序,注意网页中的大标题被修改为“我的 MVCMovie 应用程序”。点击“关于”链接,你可以看见“关于”页面中的大标题也被修改为“我的 MVCMovie 应用程序”。由此可以看出一旦修改了布局页面中的某处地方,该修改将会被应用到所有页面中。图3-6 在布局页面中修改了网页中显示的大标题 完整的_Layout.cshtml文件中的代码如代码清单3-2所示。 代码清单3-2 _Layout.cshtml文件中的完整代码ViewBag.Title我的MVCMovie应用程序Html.Partial(_LogOnPartial)Html.ActionLink(主页, Index, Home)Html.ActionLink(关于, About, Home)RenderBody() 现在,让我们修改Index视图页面的标题。 打开Views文件夹下的HelloWorld文件夹下的Index.cshtml文件。这里我们修改两处地方:首先,修改浏览器中的标题,然后修改标签中的小标题文字。修改后代码如代码清单3-3所示。 代码清单3-3 修改后的Index.cshtml视图模板文件ViewBag.Title = 电影清单;我的电影清单这是我的第一个视图模板 ViewBag对象的Title属性代表了显示该页面时的浏览器中的标题文字。让我们回头看一下布局模板文件,在该文件的区段中的标签中使用了这个值来作为浏览器中的网页标题。同时,通过这种方法,你可以很容易地在你的视图模板文件与布局模板文件之间进行参数的传递。 运行应用程序,在地址栏中输入“http:/localhost:xxxx/HelloWorld”,注意浏览器中的网页标题,页面中的小标题文字都变为修改后的标题文字(如果没有发生变化的话,则可能你的网页被缓存住了,可以按Ctrl+F5键来在重新刷新页面时取消缓存)。 同时也请注意_Layout.cshtml文件中的占位符中的内容被替换成了Index.cshtml视图模板中的内容,所以浏览器中展示的是一个单一的HTML文件。浏览器中的运行结果如图3-7所示。图3-7 修改了标题后的Index视图模板文件 此处,我们的数据(“这是我的第一个视图模板”文字)是被直接书写在文件中的,也就是说我们使用到了MVC应用程序的“V”(视图View)与“C”(控制器Controller)。接下来,我们讲解一下如何创建一个数据库并从该数据库中获取模型数据。3.3将控制器中的数据传递给视图 在我们使用数据库并介绍模型之前,首先我们介绍一下如何将控制器中的信息传递给视图。浏览器接收到一个URL请求后,将会调用控制器类来进行响应。你可以在控制器类中进行对接收到的页面参数进行处理的代码,你可以在控制器类中书写从数据库中获取数据的代码,你也可以在控制器类中书写代码来决定返回给客户端什么格式的响应文件。控制器可以利用视图模板文件来生成HTML格式的响应文件并显示在浏览器中。 控制器类负责提供视图模板文件在生成HTML格式的响应文件时所需要的任何数据或对象。一个视图模板文件不应该执行任何业务逻辑,也不应该直接和数据库进行交互。它只能和控制器类进行交互,获取控制器类所提供给它的数据,这样可以使你的代码更加清晰,容易维护。 现在在我们的应用程序中,HelloWorldController控制器类中的Welcome方法带有两个参数name与numTimes,Welcome方法直接向浏览器输出这两个参数的参数值。这里,我们修改该方法使其不再直接输出数据,而是使用一个视图模板。该视图模板将生成一个动态的响应流,这意味着我们需要将数据从控制器类传递给视图以便利用该数据来生成该响应流。我们在该控制器类中将视图模板所需要的数据送入一个ViewBag对象中,该对象可以被视图模板直接接收。 打开HelloWorldController.cs文件,修改Welcome方法,在该方法中为ViewBag对象添加一个Message属性与NumTimes属性,并且将属性值分别设定为经过处理后的name参数值与numTimes参数值。ViewBag对象是一个动态对象,你可以为它添加任何属性并赋上属性值。在未赋值之前该属性是不生效的,直到你赋值为止。修改后的HelloWorldController.cs文件中的代码如代码清单3-4所示。 代码清单3-4 修改后的HelloWorldController.cs文件using System.Web;using System.Web.Mvc;namespace MvcMovie.Controllerspublic class HelloWorldController : Controller/ GET: /HelloWorld/public ActionResult Index()return View();/ GET: /HelloWorld/Welcome/public ActionResult Welcome(string name, int numTimes = 1)ViewBag.Message = Hello + name;ViewBag.NumTimes = numTimes;return View(); 现在ViewBag对象中已经包含了数据,它将被自动传递给视图。 接下来,我们需要创建一个Welcome视图模板。在“调试”菜单中,点击“生成 MvcMovie”将应用程序进行编译,如图3-8所示。图3-8编译应用程序 接下来,在Welcome方法中点击鼠标右键,然后点击“添加视图”,弹出对话框如图3-9所示。图3-9 为Welcome方法添加视图 在该对话框中不做任何修改,直接点击添加按钮, View文件夹下的HelloWorld文件假种自动被创建了一个Welcome.cshtml文件,打开该文件,在元素下添加代码,让浏览器显示URL地址中传入的name参数中设定的文字,显示次数等于URL地址中传入的numTimes参数中设定的次数。修改后的Welcome.cshtml文件中的代码如代码清单3-5所示。 代码清单3-5 修改后的Welcome.cshtml文件ViewBag.Title = Welcome;Welcomefor (int i = 0; i ViewBag.NumTimes; i+)ViewBag.Message 运行应用程序,并且在地址栏中输入“h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2024版)分期付款广告发布合同范本-媒体广告
- 2024年专利技术使用权许可合同
- 2024年互联网金融风险评估与监测合同
- 2024年北京物联网设备安装服务合同
- 2024年人力资源服务合同:甲方乙方服务内容明确
- 2024年农作物栽培技术服务合同
- 2024年南京地区兼职劳动合同
- 2024年创意产业园区商铺租赁合同
- 2024年光伏发电项目长期供应协议
- 2024年企业间原材料采购与供应合同
- 第01讲 代数式(5个知识点+5类热点题型讲练+习题巩固)2024-2025学年七年级数学上册同步学与练(人教版2024)
- 化学丨四川省南充市高2025届高考适应性考试(南充一诊)高三10月联考化学试卷及答案
- 2024安徽马鞍山市兴望投资限责任公司招聘5人高频难、易错点500题模拟试题附带答案详解
- 部编版二年级语文上册第四单元备课教材分析
- 【课件】“珍惜粮食从我做起”课件-2024-2025学年高中上学期世界粮食日主题班会
- 蒲城清洁能源化工有限责任公司70万吨年煤制烯烃项目脱盐水
- 职业技能大赛-食品安全管理师竞赛理论知识题及答案
- 膀胱过度活动综合征
- 建设用地土壤污染风险筛选值和管制值(基本项目)
- 销售心态 培训课件
- 垃圾渗滤液处理站运维及渗滤液处理投标方案(技术方案)
评论
0/150
提交评论