【翻译】MVC Music Store 教程-概述(三)
Controller
与传统的Web框架,将传入的URL通常映射到磁盘上的文件。例如:一个URL请求“/Products.aspx" 或"/Products.php”是处理一个Products.aspx" 或 "Products.php”的文件
MVC框架传入的URL与映射到服务器代码有所不同,而不是将URL传入文件,而是映射到方式方法或者类,这些类被称为”Controller“,他们负责处理传入的HTTP请求,处理用户输入,检索和保存数据,并且决定将的数据返回到客户端(显示URL,下载文件,跳转到不同的URL,等等)。
添加HomeController
我们将在MVC Music Strore项目中新增一个Controller,用它来处理网站的首页请求,我们遵循ASP.NET MVC的默认命名规则,命名为HomeController.
在Solution Explorer中右键”Controller“文件夹,选择”Add“,选择”Controller“

在弹出的”Add Controller“对话框中,给Controller命名为“HomeController”点击“Add”按钮

接着会创建一个新文件,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();
} }
}
为了尽可能的简单,我们让Index方法简单的返回一个字符串,我们需要做两处修改:
- 将方法的返回类型修改为String,而不是ActionResult
- 将返回值语句修改为“Hello from Home”
方法修改后为“
public string Index()
{
return "Hello from Home";
}
运行应用程序
现在我们运行应用程序,我们可以启动web服务,通过下面任何一种方法:
- 选择Debug—>开始Debugging菜单
- 点击工具条上的绿色运行按钮

- 用键盘上的快捷键。F5
使用上面任何一种方法,都会编译我们的项目,从而启动内置的ASP.NET开发服务器,在屏幕的底部会有通知提示ASP.NET服务器已经启动,并且显示应用程序运行的端口号。

Visual Web Developer将会自动的打开一个浏览器,并且指向我们的请求地址。这将会使我们快速的使用我的程序:

OK,非常简单-我们创建了一个新的网站,添加了三行函数,在浏览器上显示一些文本,一切都很简单,不过这是个开始。
添加一个StoreController
我们添加了一个简单的HomeController来实现我们的首页功能,接下来,我们添加另一个Controller是实现音乐商店的浏览功能,Stroe Controller将支持三个场景:
- 列出商店中所有的音乐风格的列表
- 专辑浏览页面,列举出某个流派下的所有专辑
- 显示某个专辑的明细信息
我们从添加一个新的StoreController开始,如果你没有准备好,先关闭程序,可以直接关闭浏览器或者从”Debug—>Stop Debugging“菜单中选择停止程序。
像添加HomeController一样添加StoreController,在Solution Explorer中右键”Controller“文件夹,选择”Add“,选择”Controller“

StroeController已经有”Index“方法,我们将用”index“方法来实现音乐商店中的所有分类列表,我们将添加额外的两个方法,来实现”浏览“和”明细“。
这些方法(Index,Browse和Details)在控制器内部被称为”Controller Action“,你已经看到在HomeController中的Index()方法,它的工作就是请求URL,确定哪些内容需要被返回到浏览器或。
我们将开始在StroeController的Index()中返回字符串”Hello from stroe.Index()“,再添加相似的方法Browse(),Details().
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcMusinStore.Controllers
{
public class StoreController : Controller
{
//
// GET: /Store/ public string Index()
{
return "Hello from Store.Index()";
} public string Browse()
{
return "Hello from Store.Browse()";
} public string Details()
{
return "Hello from Store.Details()";
} }
}
再次运行项目,访问以下地址
- /Store
- /Store/Browse
- /Store/Details
这些方法将返回我们在Action中返回的字符串

太棒了,但是这些仅仅是固定的字符串,我们让他变得动态一点,从url中获取一些其他信息,再把它们显示在页面上。
首先,我们从Browse Action中获取URL中的参数值,我们可以在Action中增加一个”genre“参数,ASP.NET MVC会自动传递名为genre赋值给它。
//
// GET: /Store/Browse?genre=Disco
public string Browse(string genre)
{
string message = HttpUtility.HtmlEncode("Store.Browse, Genre = " + genre);
return message;
}
现在我们浏览这个地址:/Store/Browse?Genre=Disco

接下来,我们修改Details Action,用来读取和显示一个输入参数,参数名为ID,不同于之前的方法,这次我们不在请求参数中传递这个参数,而是在请求的 URL 地址中。例如:/Store/Details/5。
ASP.NET MVC中,我们可以不需要配置任何东西,ASP.NET MVC默认路由会Action后面的部分看作名为ID的参数值,如果你的 Action 方法有一个名为 ID 的参数,那么,ASP.NeT MVC 就会自动将这部分作为参数传送给 Action 方法。
//
// GET: /Store/Details/5
public string Details(int id)
{
string message = "Store.Details, ID = " + id;
return message;
}
现在我们浏览这个地址: /Store/Details/5:

让我们做个总结吧
- 创建了一个 ASP.NET MVC 项目
- 讨论了项目的基本文件夹,以及作用
- 学习了如何运行开发服务器
- 创建了两个控制器 HomeController 和 StoreController
- 为控制器增加了 Action 方法。
【翻译】MVC Music Store 教程-概述(三)的更多相关文章
- 【翻译】MVC Music Store 教程-概述(一)
MVC Music Store教程介绍和说明了如何一步步的用ASP.NET MVC 和Visual Web Developer 进行Web开发,教程从最基础的阶段开始,所以对于初级阶段的开发者来说,也 ...
- 【翻译】MVC Music Store 教程-概述(二)
1. 文件->新建项目 软件安装 此篇将从运用免费的Visual Web Developer 2010Express来创建ASP.NET MVC3开始,逐步的添加一些功能来创建一个完整的应用程序 ...
- MVC+EF 入门教程(三)
一.前言 上一节,我们将了生成数据库,那么这张我就将操作设计库. 二.在 Aplication 定义服务 在 Application 中添加文件夹(Blog)和 操作类(BlogServer).实例如 ...
- Spring mvc 4系列教程(三)—— Spring4.X的新特性
1.Spring4.0的新特性 从2004年Spring的1.0发布后,后面又发布了很多重要的版本:Spring2.0提供了XML命令空间和AspectJ的支持:Spring2.5提出了注解驱动(an ...
- MVC+EF 入门教程(一)
一.前言 本人小白,写这篇博客是为了记录今天一天所学的知识,可能表达不是那么的准确和清楚,欢迎在留言区写下您的建议,欢迎纠错.希望这篇文章对你有所帮助学习 .Net MVC有所帮助.废话不多说了,我们 ...
- [译]MVC网站教程(三):动态布局和站点管理
目录 1. 介绍 2. 软件环境 3. 在运行示例代码之前(源代码 + 示例登陆帐号) 4. 自定义操作结果和控制器扩展 1) OpenFileResult 2) ImageR ...
- 2017.3.31 spring mvc教程(三)拦截器
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- SpringCloud核心教程 | 第三篇:服务注册与发现 Eureka篇
Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全 ...
- 2DToolkit官方文档中文版打地鼠教程(三):Sprite Collections 精灵集合
这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...
随机推荐
- 各种Adapter的用法
同样是一个ListView,可以用不同的Adapter让它显示出来,比如说最常用的ArrayAdapter,SimpleAdapter,SimpleCursorAdapter,以及重写BaseAdap ...
- MySql按指定天数进行分组数据统计分析 1
这几天,在做数据统计,在对数据库数据进行统计过程中,有个需求就是要按照指定天数进行分组, 之前一直没有找到好的方法,就先取出数据,在程序中进行分组. 后发现,可以在SQL语句中实现按天数分组. 例: ...
- JavaScript基本概念(操作符)
一元操作符 一元操作符在处理所有的非数值时,相当于将该值经过Number()转换成数值,如 +"12" 将把 "12" 字符串转换为数字. 位操作符 负数在计算 ...
- thinkphp从数据库里的html代码显示页面不解析
首先,这个问题不应该出现在这里,因为以前在用ThinkPHP3.1.2的时候,利用富文本编辑器保存文本后,直接从数据库里面取出的数据都能正常显示,改用ThinkPHP3.2.3之后,thinkphp从 ...
- PHP学习笔记-数组(1)
1-1 数组定义 1.什么是数组? 所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组 ...
- 使用scrapy写好爬虫进行工作的时候,遇到错误及解决方法
如图中所标出的,提示参数的问题 解决办法: spider目录下的 爬虫文件内容做些更改: 出现报错的文件内容: from scrapy.spiderfrom scrapy.selector impor ...
- Sentinel-1雷达数据可以免费下载
The Sentinel-1 Scientific Data Hub(https://scihub.esa.int )网站提供免费下载 Sentinel-1雷达数据Level-0 和 Level-1级 ...
- Mac OS X:Dock 的附加功能
Dock 提供了可能并非显而易见的有用控件和菜单.通过修饰键的不同组合(如 Option 键.Control 键)及鼠标点按的不同类型(点按与按下及按住),即可使用下列附加功能.本文适用于 Mac O ...
- PixelFormat 图像颜色的数据格式
PixelFormat: (指定图像中每个像素的颜色数据的格式) Delphi 微软 ...
- vimTAB宽度等设置
10 set shiftwidth=4 11 set softtabstop=4 12 set textwidth=200 13 set nu 14 set autoindent 15 set noe ...