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访问格式: 第一种访问方式 ...
随机推荐
- Java MySql 批量插入数据库addBatch
//addBatch批量插入数据库 public static void insertCommentToMySql(Set<String> commentList) { Iterator& ...
- Java设计模式之创建型模式
创建型模式分为五类:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式 一.工厂方法模式:接口-实现类.工厂类
- PHP 基础(赋值及函数)
开端<?php>结尾</php> 弱类型语言 定义变量的时候 不需要 声明 但是 每一个变量前 都必须 加$ 符号 储存文件按 统一放到 安装文件夹下面的 WA ...
- 移动硬盘安装win7,蓝屏,0x0000007B
@echo offecho 加载注册表echo.reg load HKLM\sys %1\WINDOWS\system32\config\system >nul 2>nulif error ...
- Android 笔记 day3
短信发送器 电脑弱爆了,开第二个emulater要10min!!! 顺便学会查看API文档 package com.example.a11; import java.util.*; import an ...
- [C++11][算法][穷举]输出背包问题的所有可满足解
关于背包问题的题目,前人之述备矣,这里只讨论实现 输入: n ca w_1 v_1 w_2 v_2 ... w_n v_n 其中,n是物品总数,ca是背包大小,w_n是第n个物品的重量,v_n是第n个 ...
- package.json 字段全解析
Name 必须字段. 小提示: 不要在name中包含js, node字样: 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头: 这个名字可能在require()方法中被 ...
- java实现a+b的多重输入
import java.util.Scanner; public class hello { public static void main(String[] args) { Scanner cin ...
- ACM: FZU 2112 Tickets - 欧拉回路 - 并查集
FZU 2112 Tickets Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u P ...
- Compass的误解与新发现
最后个人感觉 Compass是 css世界的.NET 很久以前看到 Compass 误以为是css编译器,因为总是在看到如何安装Scss的文章里面看到的 知道最近不小心进入 Compass官网溜达,才 ...