【MVC】Controller的使用
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,取不同的HTTP动作方法选择器,如[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的值,值在当次网页要求就被清除。
出处:https://www.cnblogs.com/SharpL/p/4594128.html
【MVC】Controller的使用的更多相关文章
- .NET/ASP.NET MVC Controller 控制器(IController控制器的创建过程)
阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactory 控制器工厂接口 3.ASP.NETMVC DefaultControllerFactory 默认控制器工厂 4 ...
- MVC Controller Dependency Injection for Beginners【翻译】
在codeproject看到一篇文章,群里的一个朋友要帮忙我翻译一下顺便贴出来,这篇文章适合新手,也算是对MEF的一个简单用法的介绍. Introduction In a simple stateme ...
- ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”
ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”,这在给定的上下文中无效 这是一个与Controller.F ...
- Spring MVC Controller中解析GET方式的中文参数会乱码的问题(tomcat如何解码)
Spring MVC Controller中解析GET方式的中文参数会乱码的问题 问题描述 在工作上使用突然出现从get获取中文参数乱码(新装机器,tomcat重新下载和配置),查了半天终于找到解决办 ...
- 转:【Spring MVC Controller单例陷阱】
http://lavasoft.blog.51cto.com/62575/1394669/ Spring MVC Controller默认是单例的: 单例的原因有二:1.为了性能.2.不需要多例. 1 ...
- MVC Controller 链接到 API Controller 以及反向链接
MVC Controller 链接到 API Controller 以及反向链接 问题 想创建一个从 ASP.NET MVC controller 到 ASP.NET Web API controll ...
- Spring MVC Controller单例陷阱
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lavasoft.blog.51cto.com/62575/1394669 Spr ...
- Spring MVC Controller中GET方式传过来的中文参数会乱码的问题
Spring MVC controller 这样写法通常意味着访问该请求,GET和POST请求都行,可是经常会遇到,如果碰到参数是中文的,post请求可以,get请求过来就是乱码.如果强行对参数进行了 ...
- Spring MVC Controller 单元测试
简介 Controller层的单元测试可以使得应用的可靠性得到提升,虽然这使得开发的时间有所增加,有得必失,这里我认为得到的比失去的多很多. Sping MVC3.2版本之后的单元测试方法有所变化,随 ...
- .net Mvc Controller 接收 Json/post方式 数组 字典 类型 复杂对象
原文地址:http://www.cnblogs.com/fannyatg/archive/2012/04/16/2451611.html ------------------------------- ...
随机推荐
- bzoj2595: [Wc2008]游览计划 斯坦纳树
斯坦纳树是在一个图中选取某些特定点使其联通(可以选取额外的点),要求花费最小,最小生成树是斯坦纳树的一种特殊情况 我们用dp[i][j]来表示以i为根,和j状态是否和i联通,那么有 转移方程: dp[ ...
- from * import *(ImportError: No module named *)为什么报错没有这个目录
先说下from * import * 的原理:比如有路径D:\fanbingbing\ai\wo.py这么一个文件,而现在你在D:\fanbingbing\buai\ni.py(别介意这么比喻..(⊙ ...
- ccf数字排序
问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输入格式 输入的第一行包含一个整数n,表示给定数字的个数. 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所 ...
- laravel更新时区:
config/app.php 'timezon'='UTC' 或 'timezone'='Asia/Shanghai'
- zoj3732&& hdu4797 Graph Reconstruction
Graph Reconstruction Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge Let there ...
- L1-012 计算指数
真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2n.不难吧? 输入格式: 输入在一行中给出一个不超过 10 的正整数 n. 输出格式: 在一行中按照格式 ...
- php 从2维数组组合为四维数组分析
- HDU 1853
http://acm.hdu.edu.cn/showproblem.php?pid=1853 和下题一模一样,求一个图环的并,此题的题干说的非常之裸露 http://www.cnblogs.com/x ...
- kafka集群安装,配置
1.安装+配置(集群) 192.168.0.10.192.168.0.11.192.168.0.12(每台服务器kafka+zookeeper) # kafka依赖java环境,需要提前安装好jdk. ...
- for (Sms sms : smsLists){}
for (Sms sms : smsLists){ } //类似下面的for循环 :Smslists[i]!=NULL;i++) { Sms sms=Smslists[i]; } /*其实就是把Sms ...