Ch02 从零开始实例学习3

提纲:----------------------------

演练2-3:添加控制器

知识点2-3:控制器的职责

知识点2-4:控制器的类别与方法

------------------------------------

演练2-3:添加控制器

原文链接:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller

1. 右击Controllers文件夹,选择“添加控制器”,并命名为“HelloWorldController”。

add controller

2. 修改新建的控制器代码

using System.Web;
using System.Web.Mvc; 
 
namespace MvcMovie.Controllers 
{ 
    public class HelloWorldController : Controller 
    { 
        // 
        // GET: /HelloWorld/ 
 
        public string Index() 
        { 
            return "This is my <b>default</b> action..."; 
        } 
 
        // 
        // GET: /HelloWorld/Welcome/ 
 
        public string Welcome() 
        { 
            return "This is the Welcome action method..."; 
        } 
    } 
}

3. 运行查看结果
    控制器的Index和Welcome方法将返回HTML字符串。运行时在地址栏中加上“HelloWorld”。

    这是通过用路由来控制激活哪个方法,默认的路由逻辑格式为

/[Controller]/[ActionName]/[Parameters]

    因为默认路由中指定了Index方法,所以在路由中不需要加上。但如果需要访问Welcome方法,地址栏需输入 http://localhost:xxxx/HelloWorld/Welcome

4. 修改Welcome方法代码

public string Welcome(string name, int numTimes = 1) {
     return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}

5. 小结

   目前为止,我们只练习了MVC的“VC”部分,即View和Controller,控制器直接返回HTML。通常我们希望控制器返回独立的视图,我们将以后介绍。

知识点2-3:控制器的职责

    控制器负责处理浏览器来的所有要求,接受输入(通过各种资源,如表单数据或URL中的信息),并决定响应什么属性给浏览器,但它并不负责决定属性应如何显示,仅响应特定形态的属性给ASP.NET MVC框架,最后才由ASP.NET MVC框架依据响应的形态来决定如何响应属性给浏览器。

知识点2-4:控制器的类别与方法

1.Controller本身就是一个Class,其中有许多Method,这些method中只要是public method就会被视为是一个Action,通过action接收客户端传来的要求与决定响应的View。

2.编写Controller的基本要求如下。

using System.Web.Mvc;
namespace MvcApplication1.Controllers { public class Default1Controller : Controller { public ActionResult Index() { ViewBag.Message = "修改此模板以快速启动你的ASP.NET MVC应用程序。";
return View(); } } }

(1)Controller必须为public。

(2)Controller名称必须以Controller结尾。

(3)必须继承自ASP.NET MVC内建的Controller类型,或继承IController的自定义类型。

(4)所有action必须为public,任何非公开的方法如声明为private或protected的方法都不会被视为一个action。

原文地址:https://www.cnblogs.com/meetyy/p/3924009.html