哈尔滨网站seo公司农业信息网站建设

news/2025/9/26 14:06:10/文章来源:
哈尔滨网站seo公司,农业信息网站建设,莆田城市投资建设集团网站,鹤壁做网站正文ASP.NET Core MVC 2.1 特意为构建 HTTP API 提供了一些小特性#xff0c;今天主角就是 ApiControllerAttribute。0. ApiControllerAttribute 继承自 ControllerAttributeASP.NET Core MVC 已经有了ControllerAttribute#xff0c;这个用来标注一个类型是否是Controller。… 正文ASP.NET Core MVC 2.1 特意为构建 HTTP API 提供了一些小特性今天主角就是 ApiControllerAttribute。0. ApiControllerAttribute 继承自 ControllerAttributeASP.NET Core MVC 已经有了ControllerAttribute这个用来标注一个类型是否是Controller。标注了之后框架就知道哪些是系统里面的Controller了。框架也有其他方法来获取程序里面的Controller所以这个ControllerAttribute不是必须的。ApiControllerAttribute是ControllerAttribute的子类所以框架在处理Controller发现的时候和ControllerAttribute标注的对象是一样的。但是因为ApiControllerAttribute 实现了IApiBehaviorMetadata接口所以提供了一些额外的特这些特性是以HTTP Api为出发点的。下面介绍一下这些特性。1. 自动模型状态验证这个是重点框架会帮你自动验证model的state也就是ModelState.(注:不过我就是因为用FluentValidation的时候模型验证不管用了出问题了才找到这篇文章的).框架会为你自动注册ModelStateInvalidFilter这个会运行在OnActionExecuting事件里面具体来说在action执行之前model绑定之后)。他内部会检查ModelState是否为Valid如果为InValid会直接返回400 BadRequest这样就没有必要执行后面的代码提高效率。它会自动把model state 放到response里面content type 是application/problemjson。当然你也可以自定义因为毕竟你会有自己的验证后文会讲。下面我们先来举个例子说一下。之前的写法现在可以这么写顺道说一下ModelStateInvalidFilter是个公共类所以不用ApiControllerAttribute也可以使用它。2.参数绑定策略的自动推断另一个非常有用的特性是action里面的参数的模型绑定可以自动推断。ASP.NET Core MVC里面有一个比较令人恼怒的问题你需要手动给参数指定[FromBody]这个特性以便让系统知道如何从Request body里面反序列化他们比如反序列化json。因此写了很多第三方的库来解决这个问题比如WebApiContrib.Core.Formatter.BsonWebApiContrib.Core.Formatter.Csv其他不写了就举个例子现在这些可以自动解决了。除此之外如果一个参数在route里面定义了他会自动从先从path也就是url上尝试绑定不行的话会去从查询参数上绑定。IFormFlie默认从form表单上绑定获取。下面看代码之前3. 处理multipart/form-data请求如果你的action里面的一个参数指定了[FromFile]特性这通常是用于文件上传的),框架会自动假设请求是multipart/form-data。这个是用来解决社区里面提的这个问题。不过这个也是可选的只要你自己定义在action上定义一下[Consumes(...)]。4.其他有两个注意点ApiExplorer 的可见性。 默认所有的controller对ApiExplorer都是可见的所以不影响swagger 等的生成。只是一个基于特性的路由。集中的路由机制不会应用在API controller框架要求只能使用基于特性的路由即在action上指定[Route(XXX)]的方式。5. 行为自定义像MVC框架的大部分组件一样ApiControllerAttribute的行为是高度可自定义的。首先上面说的大部分内容都是可以简单的用 on/off 来切换。具体的设置是在startup方法里面通过ApiBehaviorOptions来实现先来看一下这个类。所有bool类型的属性默认都是false。Suppres有阻止的意思。可以通过以下方法进行设置。来看一下InvalidModelStateResponseFactory属性他是一个返回IActionResult的Func通过他我们可以注入自己的委托来实现需要的返回类型举个例子。原文地址https://www.cnblogs.com/sheldon-lou/p/9495377.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

绩效考核表 网站建设建设部网站城市规划资质标准

为什么有越来越多的用户选择使用小程序?跟“高大上”的APP相比,小程序不仅可以减少下载安装的复杂流程,还具备操作便捷、沉淀私域数据的优势。蚓链分销小程序具备裂变二维码、实时分佣、分销身份升级、层级分佣、商品个性化佣金设定等功能&am…

网站文件夹名中文网址和中文域名区别

参考:基于知识库和 LLM 的问答系统经验分享 - 知乎 (zhihu.com) 一、基于LLM的问答系统架构 比较常见的开源 LLM 的问答系统都会遵循下图这种结构去进行设计: 加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本…

有没有便宜做网站的 我要做个深圳网站如何制作

当我们面对三维建模软件的选择时,许多初学者可能会感到迷茫。今天,我们将从不同角度深入探讨Maya和Blender这两款软件的差异,特别是对于游戏建模领域的用户来说,这将有助于您更好地理解两者之间的区别。 软件授权与开发背景&#…

OTA测试实战指南:测试流程、用例设计与自动化实现

作为国内早期开展OEM整车EE测试业务的团队,经纬恒润整车电气团队在OTA测试及网联测试业务持续发展,积累了丰富的测试经验及项目管理经验。9月18日,经纬恒润举办线上直播研讨会,结合业务团队的实践经验,分享OTA云端…

Halcon图像——相机图像采集模式

Halcon中图像采集模式 在Halcon中,图像的采集分为两种:同步模式、异步模式。 异步读取 图像并非直接从相机中读取,还是在采集卡中读取。这样的好处就是可以保证取图和读图两不误,但必须要严格规定图像的处理时间。…

How to use SQL Server Management Studio track one store procedure performance - 详解

How to use SQL Server Management Studio track one store procedure performance - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

【2025-09-25】连岳摘抄

23:59最好的东西不是独来的。它伴了所有的东西同来。——泰戈尔抑郁症,或者抑郁状态,现在是个普遍现象。可以说是现代病。现代化让社会高度发达,科学、技术、工程越来越宏大,而个人却在日益细化的分工中看不到全局…

网站管理工作流程集团高端网站建设

三种情况:第一种情况:隐式动画,全自动动画(属于内部封装好了,只需要几行代码,就可以实现非常强大的效果)第二种情况:显示动画,手动控制的动画(提供自定义选择…

完整教程:探索 Event 框架实战指南:微服务系统中的事件驱动通信:

完整教程:探索 Event 框架实战指南:微服务系统中的事件驱动通信:pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

网站停留时间 从哪里获取如何做网站编辑

HCSC单片机使用小结 CAN 1、波特率主频/(分频1)/(SEG1SEG2)。存在BT寄存器中。 其中 2、STB在 FIFO 模式下,最先写入的数据先发送,在优先级模式下,ID 小的数据先发送。 3、通过 TCMD 寄存器的 TBSEL 位选…

Gitee:本土化DevOps平台如何助力企业实现研发效能跃迁

Gitee:本土化DevOps平台如何助力企业实现研发效能跃迁 在数字化转型浪潮席卷全球的当下,软件开发正成为企业核心竞争力的关键所在。Gitee作为一款植根中国市场的DevOps平台,凭借其独特的本土化优势和创新设计理念,…

全新升级~山海鲸4.5.12版本更新内容速递

产品更新概览 功能修复: 修复鲸地图底图报错问题; 修复部分图表加载时的偶发报错问题; 修复iframe中特殊嵌套的情况。 功能优化: 优化鲸地图底图加载优化、标记图层顺序调整; 优化3D饼图文本显示效果; 优化表格组…

告别等待:5 个 systemd 优化技巧,显著加速你的 Linux 启动

告别等待:5 个 systemd 优化技巧,显著加速你的 Linux 启动即使是固态硬盘,不必要的后台服务也会拖慢你的系统启动速度。通过几个简单的 systemd 调优技巧,我成功减少了明显的启动时间,而无需牺牲系统稳定性。为什…

pod启动后一直containerCreating状态解决

更新容器镜像的时候,经常遇到遇到pod一直卡住在containerCreating状态,检查该pod的事件信息, 显示pod一直在pulling镜像,即pod的创建阻塞在拉取镜像到节点的过程中。 出现上述问题的pod,在uat测试环境和prod生产…

activiti部署流程后act_re_procdef表中无流程定义信息

ctiviti部署流程后act_re_procdef表中无流程定义信息原因是因为之前按照教程学习,把qingjia.bpmn20.xml的bpmn20给删掉了,只在两个表中做了更新,act_re_procdef表中的数据没有更新,在启动流程的时候就发现没有定义…

手写代码使用Fls模块的方法

手写代码使用Fls模块的方法擦除目的地址的数据 Std_ReturnType Fls_17_Dmu_Erase( const Fls_17_Dmu_AddressType TargetAddress, const Fls_17_Dmu_LengthType Length);写数据Std_ReturnType Fls_17_Dmu_Write( const…

[PaperReading] REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

目录REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELSTL;DRMethod实验设计不同方法的对比BadCase分析Q&AExperimentWebShop​​总结与思考相关链接 REACT: SYNERGIZING REASONING AND ACTING IN LANGU…

OpenCSG斩获第四届琶洲算法大赛开源领域第一

9月23日,第四届琶洲算法大赛生态赋能大会在广州琶洲成功举办。本届大赛以“算法领航 琶洲奋进”为主题,吸引了来自中国、日本、肯尼亚、法国、美国、新加坡、意大利等全球30多个国家的8131支团队同台竞技。 赛事设置…

Gitee DevOps:本土化工具链如何重塑中国技术团队的研发效能

Gitee DevOps:本土化工具链如何重塑中国技术团队的研发效能 当全球科技巨头竞相布局DevOps赛道时,中国技术团队正面临一个关键挑战:如何将国际先进的持续交付理念与本土研发场景深度融合。Gitee DevOps作为国内首个…

外贸公司英文网站苏州网站建设的公司

在Linux系统中,syslog是一种系统日志服务,用于收集、存储和管理系统和应用程序生成的日志消息。syslog服务负责记录系统的运行状态、错误信息、警告、调试信息等,以便系统管理员可以监控系统的健康状况、故障排查和性能优化。 含义和作用&am…