MVC自学系列之二(MVC控制器-Controllers)
Controllers的职责
1.MVC模式中的Controllers的职责是对用户的输入做出响应,对用户的输入在实体上做一些变化。它关心的是应用的流动,处理传入的数据,并给相关的View提供数据。
2.过去的日子里,web服务器通过在硬盘里存储静态文件来提供HTML页面;之后动态网页获得很高的声望,web服务器通过执行硬盘中动态的脚本来产生HTML。
3.MVC有些不同,通过路由机制判断controller类中将调用哪个action方法来执行,并且提供所需要的参数。接着,controller的方法来决定哪个view来使用,最后view来渲染HTML页面。
创建第一个Controller
-->创建
创建一个名为AccountController的控制器,
将已有的Index方法进行修改并添加一个新的方法GetAccount
public string Index()
{
return "Hello from Account.Index()";
}
public string GetAccount()
{
return "Hello from Account.GetAccount()";
}
F5编译运行,在浏览器中URL后添加Account/GetAccount,发现HTML页面展示位Hello from Account.GetAccount
-->分析
①只是在浏览器访问/Account/GetAccount,就使得AccountController类中的GetAccount方法被执行。这就是路由行为
②我们通过VS工具创建一个控制器类,它只是一个简单的类,只不过它是继承了System.Web.Mvc.Controller类
③我们只是用了Controller,并没有使用到Model或是View(即使它们在ASP.NET MVC中也很有用),说明Controller是真正的核心,每一个请求都必须经过一个Controller
-->HttpUtility.HtmlEncode
用来审查用户的输入,这样可以阻止用户的javascript代码注入,或者是在我们的View中加入这样的链接/Account/GetAccount?ID=<script>window.location=’http://www.baidu.com’</script>
-->Controllers总结
Controllers是MVC应用程序的主导,它紧密策划与用户、实体对象以及视图的交互。它们有责任去响应用户的输入,维护适当的实体对象,并选择适当的视图来显示以响应用户最初的输入。
MVC自学系列之二(MVC控制器-Controllers)的更多相关文章
- MVC自学系列之三(MVC视图-Views)
View的约定 1.根据约定,Views目录下包含着每一个与Controller同名但是没有像Controller后缀的文件夹:因此对于控制器HomeController就对应在views目录下有个目 ...
- MVC自学系列之一(MVC入门篇)
MVC是如何适用于ASP.NET中的 自从2002年ASP.NET 1.0版本的首次发布,就知道ASP.NET和Web Forms是同样一回事.ASP.NET由抽象两层类所支持: -->Sy ...
- MVC自学系列之四(MVC模型-Models)
ASP.NET MVC 提供了一系列工具和特性去使用仅仅定义的对象模型.你可以坐下来好好思考你将要解决的问题,并且写好C#类,当你准备好时就可以使用MVC提供的工具去为每一个实体构建标准的index. ...
- Asp.Net MVC学习总结(二)——控制器与动作(Controller And Action)
一.理解控制器 1.1.什么是控制器 控制器是包含必要的处理请求的.NET类,控制器的角色封装了应用程序逻辑,控制器主要是负责处理请求,实行对模型的操作,选择视图呈现给用户. 简单理解:实现了ICon ...
- Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解
一.控制器定义 控制器提供访问应用程序的行为,通常通过服务接口定义或注解定义两种方法实现. 控制器解析用户的请求并将其转换为一个模型.在Spring MVC中一个控制器可以包含多个Action(动作. ...
- 《ASP.NET MVC企业实战》(二) MVC开发前奏
在上一篇“<ASP.NET MVC企业级实战>(一)MVC开发前奏”中记录了作者介绍的一些比较实用的VS使用方法以及C#2.0中添加的新特性.本篇继续大概了解之后版本的一些新特性. ...
- MVC学习系列3--怎么从控制器向视图传递数据
在MVC中,从控制器到视图,传递数据,可以使用 ViewData 和 ViewBag:同样从视图到控制器,传递数据,可以使用Post,QueryString,或者隐藏域:最后从控制器到控制器,传递数据 ...
- Javascript MVC 学习笔记(二) 控制器和状态
今天进入第二个部分:控制器. 控制器和状态 从以往的开发经验来看.我们都是将状态保存在server的session或者本地cookie中,但Javascript应用往往被限制在单页面,所以我们也能够将 ...
- MVC小系列(二十二)【MVC的Session超时,导致的跳转问题】
由于mvc内部跳转机制的问题,它只在当前的action所渲染的view上进行跳转,如果希望在当前页面跳,需要将mvc方法改为js方法: filterContext.Result = new Redir ...
随机推荐
- android自定义控件之模仿优酷菜单
去年的优酷HD版有过这样一种菜单,如下图: 应用打开之后,先是三个弧形的三级菜单,点击实体键menu之后,这三个菜单依次旋转退出,再点击实体键menu之后,一级菜单会旋转进入,点击一级菜单,二级菜单旋 ...
- xshell连接本地Linux虚拟机!
终端输入ifconfig获取本地虚拟机的IP地址; 安装openssh-server sudo apt-get install openssh-server 查看server是否启动: ps -ef ...
- CentOS7安装使用MySQL
安装MySQL 添加mysql源 # rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm 安装mysq ...
- Nginx性能统计模块http_stub_status_module使用
1.进入nginx源码目录,重新配置编译参数 ./configure --prefix=/usr/local/nginx/ --with-http_stub_status_module 2.重新编译安 ...
- CentOS 6.7 final编译安装Python 2.7.11
CentOS 6.7默认的Python版本为2.6.6,现升级为Python 2.7.11 1.安装编译环境 yum groupinstall "Development tools" ...
- 使用jquery.validate.js实现boostrap3的校验和验证
使用jquery.validate.js实现boostrap3的校验和验证 boostrap3验证框架 jquery.validate.js校验表单 >>>>>>& ...
- 第一篇:杂项之pymysql连接池
杂项之pymysql连接池 杂项之pymysql连接池 本节内容 本文的诞生 连接池及单例模式 多线程提升 协程提升 后记 1.本文的诞生 由于前几天接触了pymysql,在测试数据过程中,使用普 ...
- 多线程(Thread),其实很简单!
目录: 1:线程简介 2:怎么操作线程 3:Thread的常用方法 4:简单的获奖机 5:应用程序域 线程:是Windows任务调度的最小单位.线程是程序中的一个执行流,每个线 ...
- nginx之服务器
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...
- iis5.1/6.0/7.0+ 配置url重写 无扩展名伪静态
原文链接:http://www.cnblogs.com/diose/archive/2013/02/21/2920324.html 最近在搞url重写 遇到iis 无扩展名及html映射问题 供后人查 ...