如何为FromHeaderAttribute添加描述?FromHeader仅含Name属性无描述
给FromHeader参数加描述的几种方法
[FromHeader]本身确实不带描述属性,但在ASP.NET Core项目里可以通过以下方式给Header参数添加描述:
1. 使用[Description]属性
先引用System.ComponentModel命名空间,直接给参数添加该属性定义描述:
using System.ComponentModel; public async Task<IActionResult> Test([FromHeader][Description("JWT授权令牌,格式为Bearer {Token}")] string Authorization) { // 业务逻辑代码 return Ok(); }
2. 使用[Display]属性
该属性来自System.ComponentModel.DataAnnotations命名空间,支持同时设置显示名称和描述:
using System.ComponentModel.DataAnnotations; public async Task<IActionResult> Test([FromHeader][Display(Description = "JWT授权令牌,格式为Bearer {Token}")] string Authorization) { // 业务逻辑代码 return Ok(); }
3. 让描述在Swagger中显示(按需配置)
如果需要在Swagger文档里展示参数描述,需要先启用项目的XML注释,再配置Swagger读取注释文件:
- 右键项目 → 属性 → 生成 → 勾选“XML文档文件”,设置输出路径(例如
bin\Debug\net6.0\你的项目名.xml) - 在
Program.cs中添加Swagger配置:
builder.Services.AddSwaggerGen(c => { var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); });
此时也可以直接通过XML注释给参数加描述:
/// <summary> /// 测试接口 /// </summary> /// <param name="Authorization">JWT授权令牌,格式为Bearer {Token}</param> /// <returns></returns> public async Task<IActionResult> Test([FromHeader] string Authorization) { // 业务逻辑代码 return Ok(); }
若你的截图是Swagger中未显示描述,按上述步骤配置后即可正常展示。
内容的提问来源于stack exchange,提问作者Newbie
相关产品推荐
相关产品推荐

