MVC第二天
一、过滤器filter
注意:如果继承自接口需要让类实现FilterAttribute,才可以作为特性使用
使用方式1:作为Controller或Action的特性
使用方式2:在Global中注册为全局过滤器,应用于所有的Controller的Action
参数类均继承自ControllerContext,主要包含属性请求上下文、路由数据、结果
特性是在Action前加,或者在类之前加
1)、身份验证过滤器(Authorization)
在约束的Action执行前执行
重写OnAuthorization方法
如果不想使用默认的身份验证方式,需要将base.***删除
如果想进行跳转,需要设置上下文对象的Result属性为new RedirectResult(string url);
//如果保留如下代码,则会运行.net framework定义好的身份验证,如果希望自定义身份验证,则删除如下代码
//base.OnAuthorization(filterContext);
//如果希望跳转到另外一个页面,需要用Result,而不是用Response.Redirect(),第二种方法不会让服务器停止执行
//filterContext.Result = new RedirectResult(UrlHelper.GenerateUrl("","Login","UserInfo",""));
//获取路由数据:当前上下文匹配到路由规则后,得到的一个对象
//filterContext.RouteData
//获取上下文
filterContext.HttpContext.Response.Write("123");
[MyAuthorization]//:当前行为在执行前,会执行
public ActionResult Index()
{
//throw new Exception("");
Response.Write("行为执行中</br>");
return View();
}
2)、异常处理过滤器(Exception)
当发生异常时,用于进行自定义异步处理,如记录日志、跳转页面
使用自定义异常处理,需要在web.config中为system.web添加<customErrors mode="On" />节点
重写OnException方法,不要禁用base.***
如果想进行跳转,需要设置上下文对象的Result属性为new RedirectResult(string url);
3)、行为过滤器//[MyAction]
在行为被执行前、后执行的过滤器
重写方法OnActionExecuting(行为执行前)
重写方法OnActionExecuted(行为执行后)
4)、结果过滤器
在结果被执行前、后执行的过滤器
重写方法OnResultExecuting(结果执行前)
重写方法OnActionExecuted(结果执行后)
二、WebApi
两种web服务
SOAP风格:基于方法,产品是WebService
REST风格:基于资源,产品是WebAPI
可以返回json、xml类型的数据
对于数据的增、删、改、查,提供相对的资源操作,按照请求的类型进行相应处理,主要包括Get(查)、Post(增)、Put(改)、Delete(删),这些都是http协议支持的请求方式
请求方式:根据路由规则请求
在APIController中定义crud的方法,名称可以自定义,如果对应相应的资源操作,可以使用特性约束
主要的特性包括
HttpGet
HttpPost
HttpPut
HttpDelete
// GET: api/UserInfo
//使用Method=Get的方式请求url=api/userinfo,则这个方法就会被调用
MVC第二天的更多相关文章
- Pro ASP.NET MVC –第二章 第一个MVC程序
学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...
- 重拾MVC——第二天:Vue学习与即时密码格式验证
今天是复习MVC的第二天,准备自己写一个后台管理,然后慢慢写大,做全. 个人感觉做 Web 的,前端知识是必备的,所有今天学习了一下 Vue,很多人用这个,我以前没有用过,今天把它补起来. 比较了各个 ...
- spring mvc 第二天【注解实现springmvc Handler处理ajax简单请求 的配置】
这里使用的是在前台发起ajax请求Handler,后台伪造数据响应给前台, 配置对应ajax请求的Handler信息如下 @Controller public class MyController { ...
- 不同版本的 IIS 中使用 ASP.NET MVC(C#)【转】
由微软 ASP.NET 团队|2008 年 8 月 19 日 推特 在本教程中,您将学习在不同版本的 Internet Information Services 中如何使用 ASP.NET MVC 和 ...
- 在iis6里使用没有扩展名的mvc
这2天mvc第二个预览终于出来了.赶紧拿过来测试.在装了3.5的虚拟主机上运行正常.应该已经可以到能正常使用的阶段了.不过我前面一篇翻译的文章中说到,如果使用的是iis6的话就只能忍气吞声的使用带扩展 ...
- (转) 一步一步学习ASP.NET 5 (三)- 认识新的Web结构
转发:微软MVP 卢建晖 的文章,希望对大家有帮助.原文:http://blog.csdn.net/kinfey/article/details/44421979 编者语 : 今天微软的两大盛事,早上 ...
- Spring In Action(第三版)读书笔记
第一章 Spring之旅 POJO: plain old java object 简单的java对象 DI:Dependency Injection 依赖注入 构造器注入:构造时作为构造器参数传入 p ...
- 一步一步学习ASP.NET 5 (三)- 认识新的Web结构
编者语 : 今天微软的两大盛事,早上有久违的Microsoft HEC 2015 晚上有DotnetConf 2015.假若你做微软的技术怎么能够错过呢?说说我的连载吧,前两篇分别介绍了ASP.NET ...
- ThinkPHP—URL的访问以及各种方法的操作
1.URL访问 ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作,下面是一个标准的URL访问格式: 第一种访问方式 ...
随机推荐
- 2.mongoDB add user in v3.0 问题的解决(Property 'addUser' of object admin is not a func)
问题:创建mongodb帐户时,出错 > db.addUser('jyu', 'aerohive') 2015-08-05T20:03:02.767+0800 E QUERY TypeE ...
- python之路八
socket实现简单的FTP server端: import socket,osserver = socket.socket()server.bind(("localhost",9 ...
- MST 001
一.String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? 答: 1.String是字符串常量,StringBuffer和StringB ...
- Python3实现简单的爬虫功能
python3简单实现一个爬去网站图片的小功能: 有时候想要下载自己喜欢的多个图片时,不需要一个个点击来下载,使用python脚本批量拉取,并保存到本地. 1. 首先找到自己要下载图片的url 2. ...
- Select标签下拉列表二级联动级联
首先从服务器端,绑定下拉列表,二级下拉的text命名按照一定规则加上一级下拉的ID. var options=new Array(); $(document).ready(function(){ // ...
- aes加密C语言
/** * \file aes.h * * \brief AES block cipher * * Copyright (C) 2006-2010, Brainspark B.V. * * This ...
- 整合Spring、SpringMVC、MyBatis
spring+springmvc+mybatis集成 一个核心:将对象交给spring管理. 1新建web项目 2添加项目jar包 spring包见上一篇博客 3建立项目的目录结构 4完成Mapper ...
- PHP文件上传相关
1.必须通过POST提交 2. 声明 enctype="multipart/form-data" $_FILES {[pic]=array ( [name]=> ...
- win10取消vpn使用远程默认网关
打开%AppData%\Microsoft\Network\Connections\Pbk,找到rasphone.pbk文件(当你新建拨号连接或者VPN连接之后会在这个目录创建一个.pbk的文件,这个 ...
- 【原创】AC自动机小结
有了KMP和Trie的基础,就可以学习神奇的AC自动机了.AC自动机其实就是在Trie树上实现KMP,可以完成多模式串的匹配. AC自动机 其实 就是创建了一个状态的转移图,思想很 ...