zoukankan      html  css  js  c++  java
  • 控制器(Controller) – ASP.NET MVC 4 系列

           创建一个 ASP.NET MVC 4 Web Application 项目,将程序命名为 MvcMusicStore,如下图:

    image

    image

    image

    控制器

           MVC 模式中,控制器主要负责响应用户的输入、并且在响应时修改模型、提供相关视图的输出数据。

           请求的 URL 首先被路由机制截获,以决定实例化哪一个控制器,调用哪个操作方法,并未该方法提供需要的参数。然后,控制器的方法决定使用哪个视图,并对该视图进行渲染

           添加一个新的 Empty 控制器,命名为 StoreController:

    image

    image

           创建 Browse、Details 操作方法,并将 3 个方法的返回值由 ActionResult 改为 String,并运行查看效果:

    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()";
        }
    }

    image

           尽管在 ASP.NET MVC 中模型和视图非常有用,但控制器才是真正的核心。每一个请求都必须通过控制器处理,然而其中有些请求是不需要模型和视图的

           修改 Browse 方法如下:

    // GET: /Store/Browse?genre=?Disco
    public string Browse(string genre)
    {
        string message = HttpUtility.HtmlEncode("Store.Browse,Genre = " + genre);
        return message;
    }

    image

           HttpUtility.HtmlEncode() 来预处理用户输入,这样能阻止用户用链接向视图注入 JavaScript 代码或 HTML 标记,比如 /Store/Browse?Genre=<script>window.location='http://hacker.example.com'</script>

           修改 Details 方法,使其读取和显示一个名为 ID 的输入参数,这里将 ID 值嵌入到 URL 中:

    // GET: /Store/Details/5
    public string Details(int id)
    {
        string message = "Store.Details, ID = " + id;
        return message;
    }

    image

           控制器操作感觉就像是 Web 浏览器直接调用控制器类中的方法。类、方法和参数都被具体化为 URL 中的特定路径片段或查询字符串。

  • 相关阅读:
    Python笔记:PEP8常用编程规范
    Flask笔记:蓝图Blueprint
    Flask笔记:视图函数和类视图
    Flask笔记:url_for
    Python设计模式:单例模式
    Linux网络安全篇,认识防火墙(一)
    Linux网络安全篇,配置Yum源(二),阿里Yum源
    IP地址、子网掩码详解
    Linux网络安全篇,配置Yum源(一),本地Yum源
    Linux网络安全篇,进入SELinux的世界(四)
  • 原文地址:https://www.cnblogs.com/SkySoot/p/4857545.html
Copyright © 2011-2022 走看看