ASP.NET MVC4 学习系统三(控制器Controller)
控制器(Controllers)
在MVC架构模式的上下文里,控制器响应用户的输入(比如,用户点击“保存”按钮),并协调模型、视图以及(经常)数据访问层。在ASP.NET MVC程序里,控制器就是包含被路由框架处理请求时调用的方法的类。
控制器操作
控制器类并无特别之处,跟别的.NET类几乎没什么区别。事实上,控制顺类里的方法(称为控制器里的操作) 做了处理请求过程中的主要工作。经常听到控制器和控制器操作这种词语,在本书里也这样称呼,其实MVC模型并不会区分二者。但是ASP.NET MVC框架 十分关注控制器操作,因为它包含了处理请求的实际逻辑代码。
例如,HomeContronller 类包含三个操作:Index,About 和Contact.然而,假设默认的路由模式是{controller}/{action}/{id},当一个请求的URL是 /Home/About时,路由框架会决定由HomeController类中的About 方法处理这个请求。随后,ASP.NET MVC框架会创建HomController的实例,并执行About()方法。
这个例子中,About()方法非常简单:它通过ViewBag 属性把数据传递给视图,然后asp.net mvc框架通过调用 View()方法来显示名为(About)的视图,这个操作返回一个ViewResult类型的操作结果。
操作结果
值得注意的是,控制器的工作就是告诉asp.net mvc 框架下一步应该做什么,而不是怎么做。这个沟通过程通过使用+ActionResult+s来实现,返回值就是控制器提供的操作。例如,当控制器决定如何显示视图时,它就会告诉asp.net mvc 框架通过返回 ViewResult来展示视图,而不会自己渲染视图。这种松耦合的设计,也是操作中“分离关注点”原则的直接体现。
尽管每个控制器的操作都要返回ActionResult,但是大部分时间不需要你手动完成。相反,只需要使用System.Web.MVc.Controller基类提供的帮助方法即可,例如:
Content():返回文件类型的ContentResult,比如“Hello ,world!”。
File():返回文件类型的内容FileResult,比如PDF.
HttpNotFound()返回包含404HTTP状态码的HttpNotFoundResult.
JavaScript():返回JavaScriptResult
ASP.NET MVC4 学习系统三(控制器Controller)的更多相关文章
- ASP.NET MVC4 学习系统一(项目模板)
项目模板 1.空模板 空模板用于创建ASP.NETMVC 4网站的架构,包含基本的文件夹结构,以及需要引用的asp.netmvc程序集,也包含可能要使用的javaScript 库.模板同样包 ...
- ASP.NET MVC4 学习系统四(视图)
视图(Views) 在ASP.NET MVC框架中,想要返回给用户HTML的控制器操作,就要返回ActionResult类型的ViewResult实例,ActionResult知道如何渲染应答结 ...
- ASP.NET MVC4 学习系统五(Razor)
Razor ,你好! Razor 是一种把代码和内容进行平滑集成的语法.尽管它引入了一些新的符号和关键字,但是Razor并不是一种新的语法.相反,Razor允许用户使用已知的语言来编写代码 ...
- ASP.NET MVC4学习笔记路由系统概念与应用篇
一.概念 1.路由是计算机网络中的一个技术概念,表示把数据包从一个网段转发至另一网段.ASP.NET中的路由系统作用类似,其作用是把请求Url映射到相应的"资源"上,资源可以是一段 ...
- asp.net mvc4 学习笔记一(基本原理)
做了8年的asp.net webform,用过MVVM但还没用过MVC , 虽然项目不用MVC,但是还是想了解一下,今天第二天学习,以下是学习心得. VS2012默认带有asp.net mvc3和as ...
- ASP.NET MVC 学习2、从Controller传递数据到View
参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view 一,Control ...
- asp.net mvc4 学习1
1 简介:微软在很早就看到了基于windows系统的web开发平台的需求,这时便开始提出自己的解决方案即微软的第一个基于web开发的平台ASP.再后来随着需求和性能的要求再2002年推出第二个解决方案 ...
- ASP.NET MVC4 学习记录
之前在学习Artech的<ASP.NET MVC4框架揭秘>一书,学习过程中画了ASP.NET MVC4框架的草图,方便记忆.
- SpringMVC学习03(控制器Controller)
3.控制器Controller 3.1 控制器Controller 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现. 控制器负责解析用户的请求并将其转换为一个模型. 在Spr ...
随机推荐
- 【WEB】原理 之 线程池
问题描述:我们获取连接超过连接池最大值时产生如上异常.通常连接池最大值为100.当我们获取连接超过最大值时,WEB等待连接池返回连接而超时,这样将抛出如上异常解决办法:首先要做的是在我们使用连接后立即 ...
- 3. redis的超时,事务,watch
一. 键的生存时间 expire设置一个已经存在的key的生存时间,到时间后redis自动删除这个 命令 expire 设置生存时间(单位/秒) pexpire设置生存时间(单位/毫秒) ttl/pt ...
- 对象生命周期及crud操作
1. 对象状态及生命周期 瞬时状态: 持久状态: 游离状态: 2. new->save->close->update public void testSave(){ Session ...
- DDoS-Deflate安装及配置
(D)DoS-Deflate是一款免费的用来防御和减轻DDoS攻击.它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或iptables禁止或 ...
- Mac下安装JDK 6
https://support.apple.com/kb/DL1572?viewlocale=zh_CN&locale=en_US 下载 , 安装
- java反射生成ORM
package com.wzh.jdbc; import java.lang.reflect.Field;import java.sql.Connection;import java.sql.Prep ...
- FOOD
Serving order of food courses(上菜顺序)1. Appetizer(starter)2. Main Course3. Dessert Style of cooking1. ...
- Java基础-事件处理
- 最完美的xslt数值函数与字符串函数(转)
http://www.cnblogs.com/guoxu/articles/1744007.html 任何的编程语言或者是SQL语句都有内置的函数或方法,而强大灵活的xslt技术也是如此.熟练掌握XS ...
- mysql 按年度、季度、月度、周、日SQL统计查询
创建Table CREATE TABLE `test` ( `cdate` datetime DEFAULT NULL, `id` ) DEFAULT NULL, `name` ) DEFAULT N ...