Web API 重定向到网页

Web API redirect to web page

我有一个 Web API,我需要将其转换为 API Core 2。我有一个似乎无法解决的问题。控制器中有一个使用 Request.CreateResponse 的重定向,它在 .Net Core 中似乎不可用?

public HttpResponseMessage Get() {
    var response = Request.CreateResponse(HttpStatusCode.Redirect);
    response.Headers.Location = new Uri("https://xxx.xxxx.com");
    return response;
}

知道如何修改它才能工作吗?基本上如果用户不传递任何参数,我们只是将它们发送到网页。

ASP.Net-Core 中的语法发生了变化。 HttpResponseMessage 不再用于操作结果。它们将像任何其他模型返回的对象一样序列化。

改用 Controller.Redirect 方法,其中 returns 一个 RedirectResult

public IActionResult Get() {
    return Redirect("https://xxx.xxxx.com");
}

RedirectResult

RedirectResult will redirect us to the provided URL, it doesn’t matter if the URL is relative or absolute, it just redirect, very simple. Other thing to note is that it can redirect us temporarily which we’ll get 302 status code or redirect us permanently which we’ll get 301 status code. If we call the Redirect method, it redirect us temporarily...

参考Asp.Net Core Action Results Explained

您可以使用 HttpResponseMessage,例如:

 var response = new HttpResponseMessage(HttpStatusCode.Redirect);
 response.Headers.Location = new Uri("https://insight.xxx.com");

这就是 Redirect() 方法的作用:

return Redirect("https://xxx.xxx.com");

但是如果你想要更多的控制,你可以 return a ContentResult:

response.Headers.Location = new Uri("https://xxx.xxx.com");
return new ContentResult {
  StatusCode = (int)HttpStatusCode.Redirect,
  Content = "Check this URL"
};

不过,我看不出这样做有什么好处。好吧,除非你使用一些不遵循重定向的客户端,并且你想在 Content 属性 中提供一些说明或内容,客户端会将其视为 [=21= 的主体] 页面。