ASP.NET MVC会将URL解析后,分发到相应的控制器处理。控制器一般放在Controllers文件夹下面,并且按照约定的方式命名XXXController,必须实现接口IController或者继承抽象类Controller。

看下面的一个Controller例子。

[HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewData["Message"] = "欢迎使用 ASP.NET MVC!";
            return View();
        }

        public ActionResult About()
        {
            return View();
        }
    }

里面的方法必须设为public。若是内部方法,则必须在方法中设置过滤器[NonActionAttribute]。方法的返回值都是ActionResult。该类型是一个抽象类,因此返回的实际类型都是该抽象类的子类。,子类列表如下。

ASP.NET MVC 控制器_第1张图片

控制器中return View()中的View()是Controller中的一个方法。Controller中还有多个方法可以返回,具体每个方法所返回的类型可以看下表:

ASP.NET MVC 控制器_第2张图片