从asp.net web api post action重定向

时间:2012-07-04 07:53:43

标签: asp.net-mvc c#-4.0 asp.net-mvc-4 asp.net-web-api

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

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

此处upload是POST操作。我将多部分表单发布到Web API上传控制器的后期操作。上传后,我想重定向回www.abcmvc.com

这可能吗?

4 个答案:

答案 0 :(得分:186)

不确定

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

答案 1 :(得分:25)

以下是另一种无需对网址进行硬编码即可访问网站根目录的方法:

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

注意: 仅在您的MVC网站和WebApi位于同一网址

时才有效

答案 2 :(得分:5)

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

答案 3 :(得分:2)

您可以查看

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

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

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

   return Redirect(uri);
}