1,控制器中所有的动作方法必须声明为public,如声明为private或protected,将不被视为动作方法。

 如果将Action声明为private,或者是添加[NonAction]属性,则不对外公开,无法访问。

         private ActionResult Index()
{
return View(db.Guestbooks.ToList());
} protected override void HandleUnknownAction(string actionName)
{
Response.Redirect("http://www.baidu.com");
}

代码中Index为私有方法,无法访问,如果在浏览器中输入http://localhost:5502/guestbook/Index,那么将跳转到百度首页,因为我们重写了HandleUnknownAction方法。

2,可以创建两个同名的Action,取不同的动作方法选择器,如[HttpGet]/[HttpPost],前者用于显示HTML窗体,后者用来接收窗体输出的值。

  控制器负责处理浏览器的所有请求,并决定响应什么属性给浏览器(注意不是如何响应,是响应什么,如何响应是View的关注点),控制器还负责协调Model与View的数据传递。控制器中存在多种传递数据给视图的方式,比如ViewData["key"]=value。ViewData是一个ViewDataDictionary对象,实现了接口IDictionary<string, object>,所以在设置ViewData属性时,传入的key必须为字符串类型。

  比如说ViewData.Model,也就是之前常用的强类型视图。

  比如说ViewBag,ViewBag被声明为dynamic动态类型,对ViewBag的任何访问动作,最终还是对ViewData来进行操作,二者唯一的差别是ViewBag是动态类型。

  代码:ViewBag.key=value; 可以看出ViewBag是ViewData的语法糖。

  TempData也是字典型别,与ViewData不同,TempData用session保存信息,TempData一般与RedirectResult配合使用,只要有取用TempData的值,值在当次网页要求就被清除。

[MVC]Controller的更多相关文章

  1. .NET/ASP.NET MVC Controller 控制器(IController控制器的创建过程)

    阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactory 控制器工厂接口 3.ASP.NETMVC DefaultControllerFactory 默认控制器工厂 4 ...

  2. MVC Controller Dependency Injection for Beginners【翻译】

    在codeproject看到一篇文章,群里的一个朋友要帮忙我翻译一下顺便贴出来,这篇文章适合新手,也算是对MEF的一个简单用法的介绍. Introduction In a simple stateme ...

  3. ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”

    ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”,这在给定的上下文中无效 这是一个与Controller.F ...

  4. Spring MVC Controller中解析GET方式的中文参数会乱码的问题(tomcat如何解码)

    Spring MVC Controller中解析GET方式的中文参数会乱码的问题 问题描述 在工作上使用突然出现从get获取中文参数乱码(新装机器,tomcat重新下载和配置),查了半天终于找到解决办 ...

  5. 转:【Spring MVC Controller单例陷阱】

    http://lavasoft.blog.51cto.com/62575/1394669/ Spring MVC Controller默认是单例的: 单例的原因有二:1.为了性能.2.不需要多例. 1 ...

  6. MVC Controller 链接到 API Controller 以及反向链接

    MVC Controller 链接到 API Controller 以及反向链接 问题 想创建一个从 ASP.NET MVC controller 到 ASP.NET Web API controll ...

  7. Spring MVC Controller单例陷阱

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lavasoft.blog.51cto.com/62575/1394669 Spr ...

  8. Spring MVC Controller中GET方式传过来的中文参数会乱码的问题

    Spring MVC controller 这样写法通常意味着访问该请求,GET和POST请求都行,可是经常会遇到,如果碰到参数是中文的,post请求可以,get请求过来就是乱码.如果强行对参数进行了 ...

  9. Spring MVC Controller 单元测试

    简介 Controller层的单元测试可以使得应用的可靠性得到提升,虽然这使得开发的时间有所增加,有得必失,这里我认为得到的比失去的多很多. Sping MVC3.2版本之后的单元测试方法有所变化,随 ...

  10. .net Mvc Controller 接收 Json/post方式 数组 字典 类型 复杂对象

    原文地址:http://www.cnblogs.com/fannyatg/archive/2012/04/16/2451611.html ------------------------------- ...

随机推荐

  1. poj1273 Drainage Ditches 基础网络流

    #include <iostream> #include <queue> using namespace std; ][]; ]; //路径上每个节点的前驱节点 ]; int ...

  2. vue文件中style标签的几个标识符

    .vue文件中style标签的几个标识符 在人生就要绝望的时候, 被编辑器所提示的一个scopedSlots所拯救. 卧槽, 写到最后才发现这个属性的具体卵用. 详情见最后解决办法. 问题背景 问题由 ...

  3. 关于提示replication性能

    关于GTIDs的二进制日志:gtid_next: 下一个事务的编号,是master传给slave的 如SET @@SESSION.GTID_NEXT= 'c09756b8-a7e7-11e5-9468 ...

  4. python工具之日志记录

    ''' 写日志类 日志存放目录为当前应用程序的目录下的log目录中 日志产生规则:每小时产生一个文件 write by :wujf 2017-02-24 ''' import sys import o ...

  5. AJPFX简述Scanner类的特点

    hasNextInt() :判断是否还有下一个输入项,其中Xxx可以是Int,Double等.如果需要判断是否包含下一个字符串,则可以省略Xxx        nextInt(): 获取下一个输入项. ...

  6. Java并发——结合CountDownLatch源码、Semaphore源码及ReentrantLock源码来看AQS原理

    前言: 如果说J.U.C包下的核心是什么?那我想答案只有一个就是AQS.那么AQS是什么呢?接下来让我们一起揭开AQS的神秘面纱 AQS是什么? AQS是AbstractQueuedSynchroni ...

  7. Git之提交项目到远程github

    1.在分支dev下,默认本地工作区有项目project 2. git add project  [添加项目到暂存区] 3. git commit project -m "提交项目" ...

  8. 基于socketserver实现的并发(tcp和udp)

    threading 线程 基于tcp协议:请求建立连接,然后开启进程 基于udp协议:直接开启新进程 基于tcp协议 import socketserver # 导入socketserver模块 # ...

  9. web前端工程师入门须知

    本文是写给那些想要入门web前端工程的初学者,高手请路过,也欢迎高手们拍砖. 先说下web前端工程师的价值,目前web产品交互越来越复杂,用户使用体验和网站前端性能优化这些都得靠web前端工程师去做w ...

  10. STM32 modbus CRC16校验

    typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef int int32_t; const uint16_t ...