如何在asp.net mvc3中使用HttpStatusCode
下载了asp.net mvc 4的源码看了看,没怎么看清楚。不过个人觉得MVC4 beta中Web API这个是比较不错的,虽然说它是往传统回归。 web api最好的莫过于它更加适合使用jquery的ajax调用。
我这里主要给大家说明下如何在asp.net mvc 3中借鉴Web API的特性来让AJAX调用更加酷。
首先给大家看个例子,传统的asp.net mvc 3中异步调用的Response:
Action如下:
相应的jquery ajax请求代码(只是简单的代码,):
我们来运行看一下Response的信息:
Response Header信息:
状态码是200 OK。绿色,
返回的JSON数据:
现在我们想使用http.net定义好的Status来根据不同的操作来返回不同的状态码,比如当创建一条记录成功时,我们返回201成功,当没有权限时,我们返回没有权限。
现在我们试着修改Action如下:
只是添加一行代码: Response.StatusCode,也就是说这个Action是创建人员信息,当信息创建成功时,返回给浏览器说:Hi,创建成功了。以前你可能是去通过jquery的ajaxSuccess来去进行后续操作,好吧,现在你可以通过判断客户端获得的状态码来判断是该进行哪步操作了。
试着运行下:
这时你可以看到我们得到的状态码是201,对应的Response Header的信息:
它也不再是200 OK,而是201 Created。
在Asp.net http.net命名空间中,定义了很多Status Code:
这里你可能会想到,对于AJAX请求这种方式,安全方面就可以使用这种方式来统一处理啦。 当一个请求没有权限时,我们使用一个Filter来告诉它,Hi 你这个请求不可以,返回上图红色框内的状态码:400。那么对应的如果是Web请求,你就可以不冤枉它的把这个请求者转到登陆页面,巴拉巴拉巴拉。。。
首先我们需要定义一个Filter:
在PostPerson的Action中使用这个Filter:
编译后,运行:
可以看到,Status Code是400,Bad Request。 对应的Response当然也不会有数据啦,我们可以在jquery的ajax请求中,判断当status code是400时,location.href=”any where ha”:
Cheers
转载于:https://www.cnblogs.com/n-pei/archive/2012/05/05/2483686.html
如何在asp.net mvc3中使用HttpStatusCode相关推荐
- 如何在 ASP.NET Core 中使用 URL Rewriting 中间件
URL rewriting 是根据预先配置好的一组规则去修改 request url,值得注意的是:URL Rewriting 的重写功能和 url 重定向 是两个概念,本篇我们就来讨论下如何在 AS ...
- 如何在 Asp.Net Core 中对请求进行限流
译文链接:https://www.infoworld.com/article/3442946/how-to-implement-rate-limiting-in-aspnet-core.html 在应 ...
- 如何在 ASP.NET MVC 中集成 AngularJS(3)
今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表 ...
- 如何在 ASP.NET Core 中使用 HttpClientFactory ?
ASP.Net Core 是一个开源的,跨平台的,轻量级模块化框架,可用它来构建高性能的Web程序,这篇文章我们将会讨论如何在 ASP.Net Core 中使用 HttpClientFactory. ...
- 如何在 ASP.Net Core 中使用 Autofac
依赖注入可以有效的实现对象之间的 松耦合 并能够实现代码的可测试和可维护性,ASP.Net Core 提供了一个极简版的容器实现对 依赖注入 的原生支持,然而内置的依赖注入容器相比成熟的 依赖注入容器 ...
- 如何在 ASP.Net Core 中使用 Lamar
ASP.Net Core 自带了一个极简的 开箱即用 的依赖注入容器,实际上,你还可以使用第三方的 依赖注入容器 来替代它,依赖注入是一种设计模式,它能够有效的实现对象之间的解耦并有利于提高单元测试和 ...
- 如何在 ASP.Net Core 中使用 MediatR
MediatR 是一个 中介者模式 的.NET开源实现, 中介者模式 管控了一组对象之间的相互通讯并有效的减少了对象之间错综复杂的相互依赖,在 中介者模式 中,一个对象不需要直接和另一个对象进行通讯, ...
- 如何在 ASP.Net Core 中对接 WCF
在 REST API 出现之前,SOAP (Simple Object Access Protocol) 一直都是基于 web 的标准协议,虽然现在 REST 大行其道,但在平时开发中总会遇到对接第三 ...
- 如何在 ASP.Net Core 中使用 NCache
虽然 ASP.Net Core 中缺少 Cache 对象,但它引入了三种不同的cache方式. 内存缓存 分布式缓存 Response缓存 Alachisoft 公司提供了一个开源项目 NCache, ...
最新文章
- 异步使用委托delegate --- BeginInvoke和EndInvoke方法
- 高难度的c语言程序例子,高难度脑筋急转弯分享
- apache apr介绍
- 【源码】otter工程结构
- 论文1:《基于FPGA的机器学习硬件加速研究进展》阅读笔记
- 古建筑数字化影像采集技术分析
- [渝粤教育] 中央财经大学 宏观经济学 参考 资料
- DHCP/Netbios
- springboot项目访问jsp文件
- 3.在地图上标记位置
- 2022年12月10日作业
- C语言中的float(单精度浮点数)
- HDU 5984	Pocky
- eureka核心知识梳理
- load opencv videoio gstreamer453 64d dll failed 打开摄像头慢
- 响应式手机商城页面顶部样式HTML代码
- 【小程序】爆肝 3 天总结的微信小程序优化指南(收藏夹吃灰吧!)
- Eclipse 修改注释的 date time 日期时间格式,即${date}变量格式
- 基于单片机电子密码锁系统设计-毕设课设资料
- Android Custom View --- Circular(环形条)
热门文章
- Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)
- Java关键字及其作用
- ios学习笔记——Block块小结
- codeforces 650D. Zip-line 线段树
- WPF 分批加载十万个按钮
- (转载)为什么欧美拿金牌不感谢祖国
- R语言入门第六集 实验五:综合应用
- mysql 存储过程无效_用VC通过DLL包连接MySQL,执行存储过程后,再执行其他查询无效?解决方法...
- php mysql_query的的用法_PHP / MYSQL使用mysqli_query选择
- linux uwsgi 非root,ubuntu-除非root用户,否则uWSGI Emperor权限被拒绝