MVC4的Controller(控制器)!还是音乐商店的例子!
开始写我们的第一个Contrller!
我们第一个控制器主要负责一下几点:
- 首页列出了你的商店进行音乐流派
- 点击一个流派,到目标网页浏览,该页列出所有的音乐专辑
- 点击一张专辑详细信息页面,显示一个特定的音乐信息专辑
OK!来创建我们第一个的Controller,详情如下图1.
图1.Controller命名为"StoreController"。
开始写我们第一个Action(动作)!
当我们创建完StoreController控制器时,VS为为我们自动创建(生成)一个Index方法(Action),这个就是我后面音乐商店的首页,展示我们的音乐流派,我们还需要2个方法来实现其他两种情况!
这些Action方法(参数)在你的控制器被称为控制器动作。正如你已经看到的HomeController.Index()的操作方法,他们的工作是为了响应URL请求,执行相应的操作,并返回给浏览者。
来看下Action是怎么的一个运作原理:
// // GET: /Store/ public string Index() { return "Hello from Store.Index()"; }
上面的Index方法返回的一段字符串,而不是一个ActionResult类型!让我们其他的两个Action方法和这个Index方法一样也来返回一段字符,具体代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MusicStore.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()"; } } }
OK,当我们写完这些东西的时候,我们就可以访问一下的几个URL:
- /Store
- /Store/Browse
- /Store/Details
我们试着访问下"/Store/Details",运行结果如下图2.
图2
经过观察,我们可以得出一些结论:
- 浏览/Store/Details引起了StoreController类的方法(Details)被执行,没有任何额外的配置。这是路由的行动.
- 我们使用Visual Studio工具来创建控制器类,这是一个非常简单的类。我们知道这是一个控制器类,它继承System.Web.Mvc.Controller.
- 我们没有使用一个模型或视图。虽然模型和视图是非常有用的,在ASP.NET MVC中,控制器真正的心脏。每个请求都通过一个控制器,而一些不需要
利用模型和视图。
控制器中的参数
关于方法中的参数,下面列举几个简单的例子,例如下面代码:
// // GET: /Store/Browse?genre=?Disco public string Browse(string genre) { string message = HttpUtility.HtmlEncode("Store.Browse,Genre =" + genre); return message; }
运行下,在URL后面跟个参数试试,运行结果如下图3.
图3.
小小总结一下:
控制器是MVC应用程序中的导体,紧密编排的相互作用的用户的模型对象,和 视图。他们是负责响应用户的输入到对应的Action(行动)上,操作适当的模型对象,然后选择相应的视图显示呈现给用户。OK,就先介绍到这里,后续继续,希望各位前辈,朋友多多指导!