我必须在控制器中采取行动:
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
[HttpGet("redirect1")]
public IActionResult Redirect1()
{
var r = RedirectToAction(nameof(GetStream));
return r;
}
[HttpGet("stream")]
public IActionResult GetStream()
{
var ms = new MemoryStream(Encoding.UTF8.GetBytes("Hello Word"));
return File(ms, "application/octet-stream", "test.xyz", true);
}
}
当我键入https://localhost:44352/api/values/redirect1
时,另存为对话框打开以供下载,但浏览器中的 url 未更改为https://localhost:44352/api/values/stream
. 也是一种更改网址的方法。如果GetStream
操作返回 json,则 url 将更改为https://localhost:44352/api/values/stream
. 如果我返回,怎么可能更改 url FileStreamResult
。
有可能在视图中有一些东西,比如“等待......”并返回FileStreamResult