it-swarm.com.de

Weiterleitung von asp.net-Web-API-Post-Aktion

ASP.NET 4.0-Web-API ist sehr neu. Können wir am Ende der Aktion POST auf eine andere URL umleiten? So etwas wie ... Response.Redirect(url)

Eigentlich lade ich eine Datei von einer MVC-Anwendung (sagen Sie www.abcmvc.com) über die Web-API (sagen Sie www.abcwebapi.com/upload

Hier ist upload die Aktion POST. Ich poste ein mehrteiliges Formular an die Post-Aktion des Web API-Upload-Controllers. Nach dem Hochladen möchte ich zurück zu www.abcmvc.com umleiten. 

Ist das möglich?

98
Shahdat

Sicher:

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

So können Sie auch ohne harte Codierung der URL an die Wurzel Ihrer Website gelangen:

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

Hinweis: Funktioniert nur, wenn sich sowohl Ihre MVC-Website als auch WebApi auf derselben URL befinden

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

Sie können das überprüfen

[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