Redirect from asp.net web api post action

我是 ASP.NET 4.0 Web API 的新手。我们可以在 POST 操作结束时重定向到另一个 URL 吗?比如... Response.Redirect(url)

实际上,我从 MVC 应用程序(比如说 www.abcmvc.com)通过 Web API (比如说 www.abcwebapi.com/upload)上传文件

这里的 upload是 POST 操作。我将一个多部分的表单发布到 WebAPI 上传控制器的 post 操作中。上传后,我想重定向回 www.abcmvc.com

这可能吗?

130113 次浏览

当然:

public HttpResponseMessage Post()
{
// ... do the job


// now redirect
var response = Request.CreateResponse(HttpStatusCode.Moved);
response.Headers.Location = new Uri("http://www.abcmvc.com");
return response;
}

这里有另外一种方法,你可以不用硬编码就可以访问你的网站的根目录:

var response = Request.CreateResponse(HttpStatusCode.Moved);
string fullyQualifiedUrl = Request.RequestUri.GetLeftPart(UriPartial.Authority);
response.Headers.Location = new Uri(fullyQualifiedUrl);

注: 只有当你的 MVC 网站和 WebApi 在同一个网址上才能工作

你可以看看这个

[Route("Report/MyReport")]
public IHttpActionResult GetReport()
{


string url = "https://localhost:44305/Templates/ReportPage.html";


System.Uri uri = new System.Uri(url);


return Redirect(uri);
}
    [HttpGet]
public RedirectResult Get()
{
return RedirectPermanent("https://www.google.com");
}
[HttpGet]
public RedirectResult Get() {
return new RedirectResult("https://example.com");
}