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. 深入剖析PHP输入流 php://input(与POST/GET的区别)

    PHP输入流php://input 转:http://www.nowamagic.net/academy/detail/12220520 在使用xml-rpc的时候,server端获取client数据 ...

  2. Xamarin.Android开发实践(九)

    Xamarin.Android之ActionBar与菜单 一.选项卡 如今很多应用都会使用碎片以便在同一个活动中能够显示多个不同的视图.在 Android 3.0 以上的版本中,我们已经可以使用Act ...

  3. TypeC一个微软开发的超简单.NET依赖注入/IoC容器

    控制反转(IoC,Inversion of Control)是由Martin Fowler总结出来的一种设计模式,用来减少代码间的耦合.一般而言,控制反转分为依赖注入(Dependency Injec ...

  4. mysql错误:“ Every derived table must have its own alias”(每个派生出来的表都必须有一个自己的别名)

    自我感悟: 由此可以延伸,我们得到一个结果集,可以通过as XXX的方式,把结果集给当作一张表来用,以实现子查询: 一般在多表查询时,会出现此错误. 因为,进行嵌套查询的时候子查询出来的的结果是作为一 ...

  5. BZOJ 3156: 防御准备 斜率优化DP

    3156: 防御准备 Description   Input 第一行为一个整数N表示战线的总长度. 第二行N个整数,第i个整数表示在位置i放置守卫塔的花费Ai. Output 共一个整数,表示最小的战 ...

  6. c++ queue 顺序队列的实现

    #include<iostream> #include<cstdlib> #include<cstdio> using namespace std; const i ...

  7. selector选择器

    <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="ht ...

  8. 自定义ContentProvider的一些细节探究

    1.   适用范围 对于什么情况下才会用到自定义的ContentProvider,官方文档的Dev Guide是这样描述的: 如果你想要提供以下的一种或几种特性的时候你才需要构造一个ContentPr ...

  9. Hark的数据结构与算法练习之耐心排序

    算法说明 耐心排序是插入排序的一种,至少wikipedia是这么分的. 话说我明白这个算法的实现思路了,但是不明白这么做的意义何在? 如果明白的朋友帮忙留个言说一下,以后如果我明白的话,我会来修改这个 ...

  10. 标准事件模型和IE事件模型有哪些区别?请具体解释他们的差异。

    通常,事件传送有三个阶段:事件捕获阶段,停留目标阶段,事件冒泡阶段. 1.阶段差异 DOM事件模型包含捕获阶段和冒泡阶段,DOM事件模型可使用e.stopPropagation()来阻止事件流:IE事 ...