在构造函数中既可以将状态码设置成一个整数,也可以以HttpStatusCode枚举形式来指定状态码。...{ 5: return Redirect("http://www.asp.net"); 6: } 7: 8: public ActionResult...1: //1、Redirect 2: HTTP/1.1 302 Found 3: Server: ASP.NET Development Server/10.0.0.0 4: Date... 了解ASP.NET MVC几种ActionResult的本质:EmptyResult & ContentResult 了解ASP.NET MVC几种...ActionResult的本质:FileResult 了解ASP.NET MVC几种ActionResult的本质:JavaScriptResult & JsonResult 了解ASP.NET MVC
= entityHash) { return StatusCode(StatusCodes.Status412PreconditionFailed); } Mapper.Map...v1,因为默认版本1.0 访问 http://localhost:5001/api/person?...api-version=2.0 结果返回 Result from v2 参数名 api-version 可改为自定义参数名,通过 ApiVersionReader 设置 options.ApiVersionReader...version:apiVersion}/students")] 运行程序,访问 http://localhost:5001/api/v2/students 即可访问相应的版本接口 使用自定义 HTTP... GetV2() => "Result from v2"; } } 先前的版本不需要时,可以将 Deprecated 属性设置为 true [ApiVersion("1.0",
网站的权限判断是一个非常普遍的需求,从文章ASP.NET MVC的Action Filter中我们知道实现这样的需求只要从AuthorizeAttribute集成,重写相关的判断逻辑就可以了。...HTTP 状态代码为403。...AuthorizeCore方法返回false,MVC 此时将返回的ActionResult是HttpUnauthorizedResult: public class HttpUnauthorizedResult...) { throw new ArgumentNullException("context"); } // 401 is the HTTP status code for unauthorized...我这里只是重写OnAuthorization方法,重定向到一个页面而已,也可以写一个ActionResult。
在Asp.net Core之前所有的Action返回值都是ActionResult,Json(),File()等方法返回的都是ActionResult的子类。...ActionResult类 ActionResult类是最常用的返回值类型。基本沿用了之前Asp.net MVC的那套东西,使用它大部分情况都没问题。比如用它来返回视图,返回json,返回文件等等。...比如我们设计一个获取Person的api。通过 /person/001 url获取001号person。...如果null做为Action的返回值,最后框架会转换为204的http status code。 ? 204表示No Content 。...总结 大部分时候Action的返回值可以使用ActionResult/IActionResult 设计restful api的时候可以直接使用POCO类作为返回值 如果要设计既支持POCO类返回值或者ActionResult
它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net知识等等。...通过本篇文章您将Get: 将API返回的数据自动包装为所需要的格式 理解AspNetCore中Action返回结果的一系列处理过程 本文的演示代码请点击:Github Link 时长为大约有十分钟,内容丰富...来感受一下不使用统一格式的案例场景: 小明(开发人员):我开发了这个API,他将返回用户的姓名: HTTP/1.1 200 OK Content-Type: application/json; charset...所以我将代码更改为: var statusCode = objectResult.StatusCode ??.../// /// A machine-readable format for specifying errors in HTTP API responses based on https
所以API的请求往往是一个动词用来标识接口的意思,比如 https://xxxx/GetStudent?...HTTP方法基本只用GET和POST,没有使用HTTP的其它谓词设计比较简单。...在HTTP中这些调用方法GET、POST、PUT、PATCH、DELETE 即HTTP谓词。...ASP.NET Core WebAPI接口 在ASP.NET WebAPI中我们也能看到Rest的风格,理想很丰满,显示很骨干。...在上一篇中遗留的这个问题 .net 温故知新【11】:Asp.Net Core WebAPI 入门使用及介绍 所以我们在Controller中Route配置为[Controller]则不管方法接口名称是什么
上一章讲了系统如何将客户端提交的请求数据格式化处理成我们想要的格式并绑定到对应的参数,本章讲一下它的“逆过程”,如何将请求结果按照客户端想要的格式返回去。...这个阶段和Action Filters的逻辑相似,只不过前者的核心是Action的执行,后者的核心是Action的执行结果的执行。...第三行的ActionResult 类型是在ASP.NET Core 2.1 引入的,它支持IActionResult的子类也支持类似string和Book这样的特定类型。...但却将正确的结果返回给了客户端。 Result Filter介绍完了,看一下核心的IActionResult的执行。 4....= null) { response.StatusCode = result.StatusCode.Value; } var serializerSettings
1启用自定义错误 使用这种方式一定要注意将defaultRedirect设置为指定的错误页面,防止黑客探测各种错误情形进而发现系统的额漏洞。...判断是否启用了自定义错误 if (filterContext.HttpContext.IsCustomErrorEnabled) { //将错误设置为已处理...其他过滤器 filters.Add(new CustomHandleError()); } } 2.2重写控制器OnException方法 注意将错误设置为已处理...将的mode设置为Off,则显示经典错误页。...Scott Allen,孙远帅/邹权译 ASP.NET MVC4 高级编程(第四版) 3.黄保翕,ASP.NET MVC4开发指南 4.蒋金楠,ASP.NET MVC4框架揭秘 5.https://www.asp.net
ASP.NET Core 支持多种形式的缓存,既支持基于 HTTP 的缓存,也支持内存缓存和分布式缓存,还提供响应缓存中间件 HTTP 缓存,服务端返回资源时,能够在响应消息中包含 HTTP 缓存消息头...验证缓存资源的方式有两种: 通过响应消息头中的 Last-Modified 使用实体标签消息头 ASP.NET Core 提供的 [ResponseCache] 特性能够为资源指定 HTTP 缓存行为...Request.Headers.TryGetValue(HeaderNames.IfNoneMatch, out var requestETag) && entityHash == requestETag) { return StatusCode...ResponseCachingOptions 包含3个属性: SizeLimit:缓存大小 MaximumBodySize:响应正文最大值 UseCaseSensitivePaths:是否区分请求路径大小写 响应缓存中间件同样使用特性设置...由于 Json.NET 在序列化集合对象时会将其作为数组处理,因而会忽略集合对象中的其他属性,为了保留这些属性,需要自定义 JsonConvert 类 namespace Library.API.Helpers
(ASP.NET Core 系列目录) 一、内容协商 依然以返回Book类型的Action为例,看看它是怎么被转换为JSON类型的。...如果返回类型为JsonResult、ContentResult、ViewResult等特定ActionResult,无论请求是否设置了accept标识,都会被忽略,会固定返回 JSON、String,Html...这是为了在使用不同浏览器使用 API 时提供更一致的体验。...= null) { response.StatusCode = result.StatusCode.Value; } string...将这个Action添加Produces设置,代码如下: [Produces("application/json")] public Book GetModel() { return new
Asp.net配置文件的配置方式,其实在MSDN里面是写得最清楚的了。可惜之前一直未曾了解到MSDN的强大。 ...一、customErrors 元素 属性 说明 defaultRedirect 指定出错时将浏览器定向到的默认 URL。如果未指定该属性,则显示一般性错误。 可选的属性。...如果未指定 defaultRedirect,用户将看到一般性错误。 Off 指定禁用自定义错误。这允许显示标准的详细错误。...LockItem 获取或设置一个值,该值指示是否已锁定该元素。 (从 ConfigurationElement 继承。) Mode 获取或设置错误显示模式。...下面以程序示例如何在程序中读取和设置配置节: public ActionResult Index() { //<customErrors defaultRedirect
接下来我们就来一步一步的将Membership集成到我们的MVC站点中去。...集成Membership到ASP.NET MVC网站中 这里我们的需求很简单,只是要实现一个包含注册、登录、以及修改密码功能的网站就可以了。...MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode...将这个用户相关的角色的都取出来。 ...Demo下载:http://pan.baidu.com/s/1gduY5CR (你点或不点,推荐按钮就在右下角 !)
处理这些情况是非常琐碎,我们需要做的是在返回我们的自定义视图之前设置状态代码: public async Task<IActionResult GetProduct(int id) {...404; return View("ProductNotFound"); } return View(viewModel); } 当然,您可能更喜欢将其包装成自定义ActionResult...虽然全部路由将处理404,但下一个方式将处理任何非成功状态代码,以便您可以执行以下Action(可能在生产中的Action过滤器中): public async Task<IActionResult...总结 处理404页面的具体问题最好用自定义视图来处理,并设置状态代码(直接或通过自定义操作结果)。...一般来说,这两种技术是在ASP.NET Core中处理非成功HTTP状态代码的首选方法。
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一、案例结构总览 这里,假设我们有两个客户端(一个Web网站,一个移动App),他们要使用系统,需要通过API网关(这里API网关始终作为客户端的统一入口...上面分别为两个示例API Service增加Authentication的选项,为其设置ProviderKey。下面会对不同的路由规则设置的ProviderKey设置具体的验证方式。...3.1 准备工作 新建一个ASP.NET Core Web API项目,绑定端口5100,NuGet安装IdentityServer4。...msg.IsSuccessStatusCode) { return StatusCode(Convert.ToInt32(msg.StatusCode...API网关) => 401 Unauthorized 六、小结 本篇主要基于前面Ocelot和IdentityServer的文章的基础之上,将Ocelot和IdentityServer进行结合,
服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了。...1.场景 当用户登录成功将信息写入Cookie添加全局静态变量,跳转至主界面如果用户认证信息失效就重新跳转至登录界面 2.代码 2.1 设置Cookie /// ...summary> /// [HttpPost] [AllowAnonymous] public ActionResult...AdminLoginInfo.get(); } 2.3 AuthorizeAdmin自定义权限认证 继承AuthorizeAttribute并且重写 在过程请求授权时调用 处理未能授权的HTTP...); if (filterContext.HttpContext.Response.StatusCode == 401) {
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一、案例结构总览 ? ...上面分别为两个示例API Service增加Authentication的选项,为其设置ProviderKey。下面会对不同的路由规则设置的ProviderKey设置具体的验证方式。...3.1 准备工作 新建一个ASP.NET Core Web API项目,绑定端口5100,NuGet安装IdentityServer4。...msg.IsSuccessStatusCode) { return StatusCode(Convert.ToInt32(msg.StatusCode...示例代码 Click Here => 点我进入GitHub 参考资料 杨中科,《.NET Core微服务介绍课程》 作者:周旭龙 出处:http://edisonchou.cnblogs.com
设置 GCSettings.LargeObjectHeapCompactionMode 属性以确保 GCLargeObjectHeapCompactionMode.CompactOnce 将 LOH 和...注意:服务器垃圾回收在具有单个核心的计算机上不可用。 有关详细信息,请参阅 IsServerGC。 在典型 Web 服务器环境中,CPU 使用率比内存更重要,因此服务器 GC 更好。...ConcurrentBag _staticStrings = new ConcurrentBag(); [HttpGet("staticstring")] public ActionResult...此方法的不同之处在于,会从 API 返回共用对象。 也就是说: 从方法返回后,对象会立即脱离控制。 无法释放对象。 若要设置对象的释放,请执行以下操作: 将共用数组封装在可释放对象中。...RegisterForDispose 将负责调用 Dispose 目标对象,以便仅在 HTTP 请求完成时释放它。
2.5.7 MongoDB -- API实现 问题查询单个实现 问题查询列表实现 问题跨集合查询实现 问题创建实现 问题更新实现 问题回答实现 问题评论实现 问题投票实现 回答实现 QuestionController...namespace LighterApi.Controller { [ApiController] [Route("api/[controller]")] public class...question, new InsertOneOptions {BypassDocumentValidation = false}, cancellationToken); return StatusCode...update); return Ok(); } 回答实现 namespace LighterApi.Controller { [ApiController] [Route("api...://github.com/MINGSON666/Personal-Learning-Library/tree/main/ArchitectTrainingCamp/LighterApi 课程链接 .NET
customErrors defaultRedirect="~/Error" mode="On" redirectMode="ResponseRedirect"> 2.定义一个 controllers Error(这个随你) ,在 action 中如下定义 public ActionResult Index()...{ Response.Status = "404 Not Found"; Response.StatusCode = 404; return View(); } 这种方式 默认为给你的...aspxerrorpath=/ 比如:http://localhost/Error??...其根本原因是尽管我们在 Application_Error 方法中使用了 Response.Redirect 方法,但是当系统发生异常错误后 Asp.Net 认为异常并没有被处理,所以不会跳转到 Application_Error
领取专属 10元无门槛券
手把手带您无忧上云