redirect从asp.net web api发布操作

我是ASP.NET 4.0 Web API的新手。 我们可以redirect到POST动作结束时的另一个URL,例如… Response.Redirect(url)

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

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

这可能吗?

当然:

 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; } 

这里是另一种方法,你可以到你的网站的根没有硬编码的url:

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

注意: 只有当您的MVC网站和WebApi在同一个URL上时才会有效

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

你可以检查这个

 [Route("Report/MyReport")] public IHttpActionResult GetReport() { string url = "https://localhost:44305/Templates/ReportPage.html"; System.Uri uri = new System.Uri(url); return Redirect(uri); }