HttpStatusCodeResult:让mvc回传特定的http状态代码与消息给客户端,对于一些特殊的http响应,可利用httpStatusCodeResult帮助我们响应适当的状态代码:

1XX:参考信息
2XX:成功,(200网页正常响应,201表示Created服务器端已经成功创建资源)
3XX:重新导向,(302表示Found,查找这个资源但暂时转移到另一个URL,301代表Moved Permanently,表示URL已经发生永久改变,客户端必须转向另一个URL,且不用保留原本URL的记录)
4XX:客户端错误,(404Not Found找不到网页,401 Unauthorized 拒绝访问)
5XX:服务器错误,当服务器发生错误时会响应5XX的状态代码,(500 Internal Server Error 属于内部服务器错误,也就是常见的HTTP 状态代码)
如果想要响应201 Creadted状态代码,
eg:
[HttpPost]
public ActionResult Create(FormCollection form)
{
//TODO:一句客户端窗体输入的数据在数据库中创建一条记录
return new HttpStatusCodeResult(201,"数据已被成功创建");
//如下这种写法可以避免设置了一个非标准的HTTP状态代码
return new HttpStatusCodeResult(System.Net.HttpStatusCode.Created,"数据已被成功创建");
}
 
HttpNotFoundResult:用来响应http 404找不到网页的错误,在System.Web.Mvc.Controller类别中内建了一个
HttpNotFound辅助方法,方便回传HttpNotFoundResult类型的ActionResult结果。
eg:
public ActionResult Get(int id)
{
var data=GetDataFromDB(id);
if(data==null){
return HttpNotFound();
}else{
return View(data);
}
}
 
HttpUnauthorizedResult:响应http 401拒绝访问的错误,例如你可以在Action里做出一些额外的权限检查,如果查出客户端用户并没有特定数据的访问权限,就可以利用这个响应“拒绝访问”的http状态代码:
eg:
public ActionResult Get(int id){
if(CheckPermission(User.Identity.Name)){
var data=GetDataFromDB(id);
if(data==null){
return HttpNotFound();
}else{
return View(data);
}
}else{
return new HttpUnauthrizedResult();
}
}

HttpStatusCodeResult的更多相关文章

  1. 爱上MVC~为非法进行Action的用户提供HttpStatusCodeResult

    回到目录 对一MVC来说,它有Controller和Action,其中Action用来为页面提供数据和相关逻辑,并最后将页面渲染出来,而有些action是需要一些参数的,如文章的最终页,可能需要一个I ...

  2. 了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult & RedirectResult/RedirectToRouteResult

    在本系列的最后一篇,我们来讨论最后三个ActionResult:HttpStatusCodeResult.RedirectResult和RedirectToRouteResult .第一个用于实现针对 ...

  3. MVC小系列(二十)【给Action提供HttpStatusCodeResult】

    主要用到: HttpStatusCodeResult 和HttpStatusCode 的http返回状态 比如: /// <summary> /// 使用异步模式 /// </sum ...

  4. 为HttpStatusCodeResult加入customErrors

    asp.net mvc的action返回值为HttpStatusCodeResult时的customErrors总是不起作用 (404和exception时的500,因为他们并不是HttpStatus ...

  5. System.Web.Mvc.HttpStatusCodeResult.cs

    ylbtech-System.Web.Mvc.HttpStatusCodeResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutra ...

  6. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  7. [翻译+山寨]Hangfire Highlighter Tutorial

    前言 Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows ...

  8. ef

    现阶段使用回溯 entityframework作为.net平台自己的一个orm的框架,之前在项目中也有使用,主要采用了table和model first的方式,此两种感觉使用上也是大同小异.在项目中经 ...

  9. ASP.NET MVC Controllers and Actions

    MVC应用程序里的URL请求是通过控制器Controller处理的,不管是请求视图页面的GET请求,还是传递数据到服务端处理的Post请求都是通过Controller来处理的,先看一个简单的Contr ...

随机推荐

  1. .net学习之新语法学习(匿名类和匿名方法,扩展方法,系统内置委托,Lambda表达式和linq等)

    1.自动属性 Auto-Implemented Properties 2.隐式类型 var  var变量不能作为全局变量使用,因为不能在编译时确定类型 3.参数默认值 和 命名参数 4.对象初始化器 ...

  2. MVC的处理过程

    MVC的处理过程,首先控制器接受用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户.

  3. struts乱码问题

    我觉得很有必要记录一下,在我搜便了网上乱码问题的解决方案无果之后几乎绝望. 一定要在提交的form 加上 methd =  post

  4. Android 编程下 Using ViewPager for Screen Slides

    (参考官方文档:Using ViewPager for Screen Slides | Android Developers)

  5. topcoder SRM 594 DIV2 AstronomicalRecordsEasy

    此题主要考查的是求最长公共子序列 设A[i]:A[j] = a:b = ac:bc       B[ii]:B[jj] = c:d = ac:ad , 如果A[i]:A[j] = B[ii]:B[jj ...

  6. 【POJ】3070 Fibonacci(矩阵乘法)

    http://poj.org/problem?id=3070 根据本题算矩阵,用快速幂即可. 裸题 #include <cstdio> #include <cstring> # ...

  7. 【wikioi】1230 元素查找(巨水题+set/hash)

    http://wikioi.com/problem/1230/ 这题我真的不好意思写题解了...set练手.. #include <cstdio> #include <set> ...

  8. 基于nginx tomcat redis分布式web应用的session共享配置

    一.前言 nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存.web server负载均衡等功能,由于其轻量级.高性能.高可靠等特点在互联网项目中有着非常普遍的应用,相关 ...

  9. python 操作execl文件

    http://www.jb51.net/article/60510.htm import xlrdimport xlwt # 打开文件   workbook = xlrd.open_workbook( ...

  10. Google Code Jam 2010 Round 1B Problem B. Picking Up Chicks

    https://code.google.com/codejam/contest/635101/dashboard#s=p1   Problem A flock of chickens are runn ...