控制器的定义

  • MVC模式下的控制器(Controller)主要负责响应用户的输入,并且在响应时可能的修改模型(Model)。
  • 之前的URL访问,通常是通过指定服务器的路径来实现,如访问URL:http://www.example.com/hello.html ,是访问域名为http://www.example.com 这台服务器上面根目录下的hello.html文件,但MVC与之不同。URL首先告知路由机制实例化哪个控制器,调用哪个方法,并为该方法提供必要的参数;然后由控制器的方法来决定使用哪个视图,并负责对该视图进行渲染。因此,在ASP.NET MVC中,URL并不与存储在Web服务器磁盘上的文件有对应的关系。
  • MVC提供的是方法调用的结果,而不是动态生成的页面。

简单示例:HomeController

  • 新建一个默认的ASP.NET MVC项目
  • 展开项目目录下的Controller子目录,将会看到名为HomeController控制器的类(HomeController.cs)。
  • 可以看到,这个类继承自Controller基类,定位到About方法,将“Your application description page”修改为任意的短语,如“My application description page,hihihi~”
  • 运行项目,浏览到/Home/About,查看结果。

创建控制器

  • 右击Controller目录->添加->控制器->MVC 5 控制器 空->添加->键入控制器名称:StoreController->添加

  • 此时控制器的类内只有Index方法,当浏览到/Store时,调用此Index方法,选择和渲染视图。

  • 修改控制器内的方法:将Index方法返回值改为string,并将方法内的全部代码改为“return "Hello from Store.Index()";”。添加Browse和Details方法。完成后的控制器如下:

      public string Index()
    {
    return "Hello from Store.Index()";
    } public string Browse()
    {
    return Hello from Store.Browse()";
    } public string Details()
    {
    return Hello from Store.Details()";
    }
  • 运行项目,浏览/Store,/Store/Browse,/Store/Details,查看结果。

  • 总结:如上所示,只需要浏览到/Store就可以执行StoreController类中的Index方法,浏览到/Store/Detals就可以执行Details方法,这就是所谓的路由,所有的请求都是通过控制器进行处理;此外,判断一个类是否是控制器类的惟一方法是查看该类是否继承自System.Web.Mvc.Controller

ASP.NET MVC控制器Controller的更多相关文章

  1. ASP.NET MVC控制器Controller中参数

    前述文章参见:ASP.NET MVC控制器Controller 绪论 之前的控制器返回的均为常量字符串,接下来展示如何获取请求传来的参数,而返回"动态"的字符串. 可以在操作方法B ...

  2. ASP.NET MVC 控制器激活(一)

    ASP.NET MVC 控制器激活(一) 前言 在路由的篇章中讲解了路由的作用,讲着讲着就到了控制器部分了,从本篇开始来讲解MVC中的控制器,控制器是怎么来的?MVC框架对它做了什么?以及前面有的篇幅 ...

  3. ASP.NET MVC 控制器激活(二)

    ASP.NET MVC 控制器激活(二) 前言 在之前的篇幅中,用文字和图像来表示了控制器的激活过程,描述的角度都是从框架默认实现的角度去进行描述的,这样也使得大家都可以清楚的知道激活的过程以及其中涉 ...

  4. ASP.NET MVC 控制器激活(三)

    ASP.NET MVC 控制器激活(三) 前言 在上个篇幅中说到从控制器工厂的GetControllerInstance()方法来执行控制器的注入,本篇要讲是在GetControllerInstanc ...

  5. 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器

    MVC全称是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将 ...

  6. Asp.Net MVC 控制器

    原文链接:http://www.asp.net/learn/mvc/ 这篇教程探索了ASP.NET MVC控制器(controller).控制器动作(controller action)和动作结果(a ...

  7. 详解ASP.NET MVC 控制器

    1   概述 在阅读本篇博文时,建议结合上篇博文:详解ASP.NET MVC 路由  一起阅读,效果可能会更好些. Controller(控制器)在ASP.NET MVC中负责控制所有客户端与服务端的 ...

  8. 【ASP.NET MVC系列】浅谈ASP.NET MVC 控制器

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  9. 使用Code First建模自引用关系笔记 asp.net core上使用redis探索(1) asp.net mvc控制器激活全分析 语言入门必学的基础知识你还记得么? 反射

    使用Code First建模自引用关系笔记   原文链接 一.Has方法: A.HasRequired(a => a.B); HasOptional:前者包含后者一个实例或者为null HasR ...

随机推荐

  1. Cordova热更新和App升级 - 简书

    原文:Cordova热更新和App升级 - 简书 公司的cordova项目前段时间增加了热更新功能,自己第一次做的时候在网上查找了很多资料,有的资料写的并不全面遇到了很多坑.因此总结一些在开发过程中遇 ...

  2. Ibatis之RowHandler

    如果一个场景:账户表中有1千万账户,现在,我们需要这个1千万账户利息结算业务.需求是基于Ibatis框架来实现这个功能. 如果按照一般的编程模式,我们将编写一个sql,然后调用QueryForList ...

  3. 机器审核图片学习(2)安装pornDetector所用环境-python、scikit-learn、opencv

    1.安装python 下载安装即可:最好是C盘 路径:https://www.python.org/ 将Python的安装路径加到path环境变量中,Python/Scripts加到path环境变量 ...

  4. C++ Lambda表达式基本用法(言简意赅,非常清楚)

    创建一个匿名函数并执行.Objective-C采用的是上尖号^,而C++ 11采用的是配对的方括号[].实例如下: 1 2 3 4 5 6 7 8 9 #include <iostream> ...

  5. Swift 1

    Swift 中函数使用指南 关于Swift中的各种函数的使用的总结 前言 时间久了,好多东西我们就会慢慢忘记,在这里总结一下Swift中函数的使用原则,把大部分的函数使用技巧用代码示例来做了演示,但是 ...

  6. 矩阵十点【两】 poj 1575 Tr A poj 3233 Matrix Power Series

    poj 1575  Tr A 主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1575 题目大意:A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的 ...

  7. Wireshark非标准分析port无流量

    Wireshark非标准分析port无流量 2.2.2  非标准分析port无流量Wireshark非标准分析port流量 应用程序执行使用非标准port号总是网络分析专家最关注的.关注该应用程序是否 ...

  8. 算法模型的 Motivations

    neurally-inspired biologically-inspired 1. CNN:biologically-inspired CNN(Convolutional Neural Networ ...

  9. 回调函数实现类似QT中信号机制

    1. 定义回调接口类: class UIcallBack { public: virtual void onAppActivated() = 0; virtual void onShowMore()  ...

  10. 让你的sublime text写C代码 (sublime text 2 配置构建C开发环境)

    原则 1. 首先你要配置能够编译C++/C环境 2. window中配置该执行环境的环境变量,能够全局使用 3. sublime Text创建新的构建机制.并设置用改全局编译环境 具体过程 能够编译C ...