asp.net Core MVC 内容协商

内容协商

内容协商是Asp.Net Core 控制器的一项功能,而Asp.Net MVC5 控制器并不支持它。

引入内容协商是为了满足 Web API 框架的需要。 在 Asp.net Core 中,内容协商 被内置到引擎中,供开发人员使用。

顾名思义,内容协商指的是调用方和API之间悄悄发生的协商。 协商会考虑返回数据的实际格式。

如果传入的请求包含一个Accept头,说明了调用方可以理解的MIME,那么就要考虑内容协商。

Asp.net Core 中的默认行为是将任何返回对象序列化为Json。

csharp 复制代码
[HttpGet]
public ObjectResult Get(Guid id)
{
	var n=fun(xx);
	return Ok(n);
}

如果控制器检测到Accept头,那么就会扫描头内容中列出的类型,直到找到自己可以提供的格式。这种扫描遵循的是 MIME 类型出现的顺序。如果没有找到控制器能够支持的类型,就使用Json格式

注意》》》

如果传入的请求包含 Accept头,并且控制器返回的响应是 ObjectResult类型,则会触发内容协商。

如果序列化控制器的响应(例如使用了Json方法)那么不管是不是发送了 Accept 头。都不会发生内容协商。

相关推荐
玹外之音12 分钟前
Spring AI MCP 无状态服务器实战:构建AI智能用户管理系统
java·后端
ATCB12 分钟前
零门槛!PythonAnywhere 免费部署全指南:不止 Django,这些项目都能搭(附主流平台对比)
后端·python·django
雨落Re24 分钟前
从设计到开发,过年我用十天使用AI搭建了一个完整的博客系统
前端·后端
大鹏198842 分钟前
告别冗余类型声明:C# 14 带修饰符的简单 Lambda 参数详解
后端
糖猫猫_1 小时前
Kite:两种方式实现动态表名
java·后端
孤独风雪1 小时前
Spring Stomp 消息使用
java·后端
间彧1 小时前
ShardingSphere详解与SpringBoot实战分库分表指南
后端
掘金一周1 小时前
2026 春晚魔术大揭秘:作为程序员,分分钟复刻一个 | 掘金一周 2.26
前端·人工智能·后端
掘金者阿豪1 小时前
Jenkins前端访问卡顿优化实战:从主题插件故障到性能调优全记录
后端
掘金者阿豪1 小时前
时序数据库国产化替代的“深水区”:金仓数据库如何重构物联网数据底座
后端