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