javascript - 从 ASP.NET Core v2.2 WebAPI 应用程序发送响应标头
问题描述
我有一个 API 控制器,它接受文件上传并且返回类型为void
. 我需要从 API 控制器向客户端(JavaScript - 成功处理程序)返回内容,比如说一个名称。我该怎么做?
我尝试在 API 控制器中使用响应标头。但没有成功。这是下面的代码部分。
public void MyAPIController(IList<IFormFile> Files)
{
try
{
. . . . . . . . . .
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.StatusCode = 200;
Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = "File Uploaded";
Response.Headers.Add("ModifiedName", "myImage");
}
}
}
}
catch (System.IO.IOException e)
{
Response.Clear();
Response.StatusCode = 204;
Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = "No Content";
Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = e.Message;
}
}
function SuccessHandler(args) {
var modified = args.currentTarget.getResponseHeader('ModifiedName');
}
解决方案
我有一个接受文件上传并且返回类型为 void 的 API 控制器。我需要从 API 控制器向客户端(JavaScript - 成功处理程序)返回内容,比如说一个名称。我该怎么做?
当用作方法的返回类型时,void
指定该方法不返回值。
ASP.NET Core 为 Web API 控制器操作返回类型提供以下选项:
- 具体类型
最简单的操作返回原始或复杂数据类型(例如,string
或自定义对象类型)。
- 动作结果
当一个操作中可能有多个ActionResult返回类型时, IActionResult返回类型是合适的。这些类型代表各种 HTTP 状态代码。属于此类别的一些常见返回类型是 BadRequestResult (400)、NotFoundResult (404) 和 OkObjectResult (200)。ActionResult
- 动作结果<T>
ASP.NET Core 2.1为 Web API 控制器操作引入了ActionResult< T >返回类型。它使您能够返回派生自 ActionResult 的类型或返回特定类型。
参考 :
推荐阅读
- c# - 如何将 gif 转换为多个精灵表?
- html - 使用 2018 年全新的“HTML 导入”草案快速加载网页:将 rel="stylesheet" 替换为 rel="import"
- c - 在 local_bh_disable()/local_bh_enable() 中使用 rcu_dereference() 是否安全?
- python - 我正在尝试使用标记创建一个叶图,但我不断收到 TypeError: must be real number, not str
- php - 如何从 Wordpress 帖子中提取图像并将其放入 php 代码中
- git - git忽略特定目录、绝对路径或相对路径
- android - 当文本过多时,ScrollView 会遮盖我的按钮
- sql - 查找名字和姓氏不唯一的客户
- java - 创建一个返回字符串数组的方法
- sql - ORACLE SQL - 时差