




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 2 部分: 控制器与传统的 web 框架,传入的 Url 通常映射到磁盘上的文件。例如: 一个 URL 的请求喜欢/ Products.aspx或/ Products.php可能由Products.aspx或Products.php的文件处理。基于 web MVC 框架将 Url 映射到服务器代码的方式略有不同。而不是将传入的 Url 映射到的文件,他们反而 URLs 映射到类上的方法。这些类称为控制器和他们都是负责处理传入的 HTTP 请求,处理用户输入,检索和保存数据,以及确定响应发送回客户端 (显示 HTML、 下载文件、 重定向到一个不同的 URL,等等)。添加 HomeController我们会首先我们的 MVC 音乐商店应用程序添加一个控制器类,将处理 Url 到我们网站的主页。我们会遵循 ASP.NET MVC 的默认的命名约定,并称之为 HomeController。右键单击解决方案资源管理器内的控制器文件夹并选择添加,然后在控制器.命令:这将打开添加控制器对话框。名称HomeController的控制器,然后按添加按钮。这将创建一个新文件,HomeController.cs,用下面的代码:using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcMusicStore.Controllers public class HomeController : Controller / / GET: /Home/ public ActionResult Index() return View(); 若要开始尽可能简单,让我们简单的方法,只是返回一个字符串替换索引方法。我们会两项更改: 该方法返回一个字符串,而不是方法的变化 更改返回语句返回你好从家园方法现在看起来应像这样:public string Index() return Hello from Home;运行应用程序现在让我们运行网站。我们可以开始我们的 web 服务器,并尝试使用以下任何的网站: 选择调试 开始调试菜单项 单击工具栏中的绿色箭头按钮 使用键盘快捷方式,F5。使用任何上述步骤将编译我们的项目,然后导致是建到 Visual Web Developer 要启动 ASP.NET 开发服务器。通知将显示在右下角的屏幕上,表明 ASP.NET 开发服务器启动后,并将显示的端口号它在下运行。Visual Web Developer 然后会自动打开一个浏览器窗口,其 URL 指向我们的 web 服务器。这将使我们能够快速地试用我们的 web 应用程序:好吧,那是非常快的 我们创造了一个新网站,添加三个线函数,还有我们的文本在浏览器中。虽然现在还很简单,但这只是一个开始。注意: Visual Web Developer 包括 ASP.NET 开发服务器,它将运行您的网站上随机免费端口号。在上面的截图,该网站运行在 http:/localhost:26641/,所以它使用端口 26641。你的端口号会有所不同。当我们谈论时 URL 的像 /Store/Browse 在本教程中,就会在端口号后。假设 26641 端口号,浏览到 /Store/Browse 将意味着浏览到 http:/localhost:26641/Store/Browse。添加 StoreController我们添加了简单的 HomeController 实现我们网站的主页。让我们现在添加另一个控制器,我们将使用来实现我们的音乐商店的浏览功能。我们的存储控制器将支持三种情形: 在我们的音乐商店音乐流派清单页面 浏览页面,其中列出了所有的音乐专辑在一种特定的风格 详细信息页,其中显示有关特定音乐专辑信息我们会通过添加启动一个新的 StoreController 类.如果你还没有停止运行该应用程序,或者通过关闭浏览器选择调试 停止调试菜单项。现在,添加新的 StoreController。就像我们做了与 HomeController、 我们会这样做,请右键单击解决方案资源管理器内的控制器文件夹上和选择添加- 控制器菜单项我们新的 StoreController 已经有一个“Index”方法。我们将使用此“Index”方法来实现我们的列表页面,在其中列出我们音乐商店里的所有流派。我们还将添加两个附加的方法来实现我们想要 StoreController 来处理的其他两个方案:Browse 和 Details。这些方法(Index、Browse 和 Details)在我们的控制器中称为“控制器操作”,就像你已经看到的 HomeController.Index() 操作方法一样,它们的工作是对 URL 请求做出响应并(一般来说)确定将哪些内容发送回浏览器或调用 URL 的用户。我们会通过更改 theIndex() 方法返回的字符串Hello 从 Store.Index()开始我们的 StoreController 实现和我们将为 browse () 和 Details() 中添加类似的方法:using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcMusicStore.Controllers public class StoreController : Controller / / GET: /Store/ public string Index() return Hello from Store.Index(); / / GET: /Store/Browse public string Browse() return Hello from Store.Browse(); / / GET: /Store/Details public string Details() return Hello from Store.Details(); 再次运行该项目,并浏览以下 Url: / 存储 / 存储/浏览 / 存储/详细信息访问这些 Url 将调用内我们的控制器的操作方法,并返回字符串响应:很好,但这些只是常量字符串。让我们使他们动态的所以他们从 URL 中获取信息并在页面输出中显示它。首先我们会改变要从 URL 中检索查询字符串值的浏览操作方法。通过将流派的参数添加到我们的操作方法,我们可以这样做。当我们这样做时 ASP.NET MVC 将自动传递命名为流派到我们的操作方法被调用时任何查询字符串或窗体 post 参数。/ GET: /Store/Browse?genre=Discopublic string Browse(string genre) string message = HttpUtility.HtmlEncode(Store.Browse, Genre = + genre); return message; 注意: 我们使用 HttpUtility.HtmlEncode 实用程序方法来清理用户输入。这样可以防止用户从 Javascript 注入我们认为带有像 /Store/Browse 的链接吗?流派 = window.location= 。现在让我们浏览到 /Store/Browse?Genre=Disco让我们下一步更改的详细信息操作来读取和显示名为 ID 的输入的参数与我们前面的方法,不同的是我们不会将嵌入的 ID 值作为查询字符串参数。相反我们会直接在 URL 本身内嵌入。例如: /Store/Details/5。ASP.NET MVC 让我们轻松地执行此操作而无需进行任何配置。ASP.NET MVC 的默认路由公约是治疗后的操作方法名称的 URL 的部分作为名为ID的参数。如果您的操作方法有一个名为 ID 参数然后 ASP.NET MVC 将自动 URL 段到你作为参数进行传递。/ GET: /Store/Details/5public string Details(int id) string message = Store.Details, ID = + id; return message; 运行该应用程序并浏览到 /Store/Details/5:让我们回顾一下我们做了什么到目前为止: 在 Visual W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2017正规租房合同范本
- 植物学奥赛题目及答案
- 人员培训与开发试题及答案(一)
- 人教版高一上学期语文期末考试试卷(含答案)
- 直营店招聘合同范本
- 法律咨询服务合同
- 俄语试卷题目及答案
- 健康保障考试试题题库及答案
- 2025年实验幼儿园教职工考核量化细则
- CN222960731U 环形跟踪上料站 (温州优匠工品科技有限公司)
- 地砖铺贴分包合同协议书
- 湖北省宜昌市2024-2025学年七年级上学期起点监测英语试卷(含答案无听力音频及原文)
- 大语言模型与安全 课件 第3章 多模态大语言模型
- 尿液感染组学在尿路感染诊断中的价值
- 2025 年扬州市四年级数学秋季期末测 - 基础卷及答案(苏教版)
- 2025专精特新小巨人打分表(密件)
- GB/T 45340-2025金属及其他无机覆盖层镀层厚度的测量斐索多光束干涉法
- 离婚协议书正规打印电子版(2025年版)
- 《 大学生军事理论教程》全套教学课件
- 湖南省岩石地层新旧名称对照表
- 湖北化工集团会计核算手册
评论
0/150
提交评论