web-dev-qa-db-fra.com

Rediriger depuis une action post api web asp.net

Je suis très nouveau dans l’API Web ASP.NET 4.0. Pouvons-nous rediriger vers une autre URL à la fin de l'action POST?, Quelque chose comme ... Response.Redirect(url)

En fait, je télécharge un fichier depuis une application MVC (disons www.abcmvc.com) via l'API Web (disons www.abcwebapi.com/upload). 

Ici upload est l'action POST. Je poste un formulaire en plusieurs parties sur l'action ultérieure du contrôleur de téléchargement d'API Web. Après le téléchargement, je voudrais rediriger vers www.abcmvc.com

Est-ce possible?

98
Shahdat

Sûr:

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;
}
182
Darin Dimitrov

Voici un autre moyen de vous rendre à la racine de votre site Web sans coder en dur l'URL:

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

Remarque: Ne fonctionnera que si votre site Web MVC et WebApi se trouvent sur la même URL

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

Vous pouvez vérifier cela

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

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

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

   return Redirect(uri);
}
0
Debendra Dash