一、控制器的角色

MVC模式中的控制器(Controller)主要负责响应用户的输入,并且在响应时通常会修改模型(Model)。通过这种方式,MVC模式中的控制器主要关注的是应用程序流,输入数据的处理,以及对相关视图(View)输出数据的提供。

MVC是基于路由机制的,URL告知路由机制去实例化哪个控制器,调用哪个操作方法,并为该方法提供需要的参数。然后由控制器的方法决定使用哪个视图,并随后对该视图进行渲染。

URL与控制器(controller)类中的某个方法有关。理解MVC模式在Web场景中工作原理的一个好方法就是记住:MVC提供的是方法调用的结果,而不是动态生成的页面。

二、创建第一个非常简单的控制器

1、创建新控制器

首先打开上一张建立的MVC项目,然后在Controller文件夹上右击选择添加--控制器菜单项,如图2-1所示。

《asp.net mvc3 高级编程》第二章 控制器

图 2-1

将控制器名为DemoController,选择”控制器“一项,如图2-2所示。

《asp.net mvc3 高级编程》第二章 控制器

图  2-2

2、编写操作方法

在新创建的DemoController控制器已经有了一个Index方法,再在里面添加两个方法,分别为Browse和Details。这些方法在控制器里被称为控制器操作。他们的工作是响应URL请求,根据URL请求执行合适的操作,并向浏览器或者单击这个URL的用户做出响应。下面的操作步骤演示了控制器是如何工作的。

(1)将DemoController中的Index()方法的签名改为String(而不是ActionResult),然后将返回值改为”Hello from demo.Index()",如下所示:

 1  public class DemoController : Controller
 2     {
 3         //
 4         // GET: /Demo/
 5 
 6        // public ActionResult Index() 改为:string
 7         public string Index()
 8         {
 9             //return View(); 改为返回一个字符串。
10             return "Hello from demo.Index()";
11         }
12 
13     }

(2)添加Browse操作方法,将返回值设为“Hello from demo.Browse()",添加Details操作方法,将返回值为"Hello from demo.Details()"。DemoController完整代码如下所示:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 
 7 namespace MvcApplication1.Controllers
 8 {
 9     public class DemoController : Controller
10     {
11         //
12         // GET: /Demo/
13 
14        // public ActionResult Index() 改为:string
15         public string Index()
16         {
17             //return View(); 改为返回一个字符串。
18             return "Hello from demo.Index()";
19         }
20 
21         // GET: /Demo/Browse
22         public string Browse()
23         {
24             return "Hello from demo.Browse()";
25         }
26 
27         // GET: /Demo/Details
28         public string Details()
29         {
30             return "Hello from demo.Details()";
31         }
32 
33     }
34 }
View Code

相关文章: