我有一个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');
}
任何解决方案或指导都值得赞赏。
答案 0 :(得分:0)
我有一个API控制器,可以接受文件上传,并且返回类型为void。我需要从API控制器到客户端(JavaScript-成功处理程序)返回内容,比如说一个名称。我该怎么办?
void
用作方法的返回类型时,指定该方法不返回值。
ASP.NET Core为Web API控制器操作返回类型提供以下选项:
最简单的操作将返回原始或复杂的数据类型(例如string
或自定义对象类型)。
当动作中可能有多个IActionResult返回类型时,ActionResult返回类型是合适的。 ActionResult
类型表示各种HTTP状态代码。属于此类别的一些常见返回类型为BadRequestResult(400),NotFoundResult(404)和OkObjectResult(200)。
ASP.NET Core 2.1为Web API控制器操作引入了ActionResult< T >返回类型。它使您能够返回派生自ActionResult的类型或返回特定类型。
参考: