Asp.net वेब एपीआई पोस्ट एक्शन से रीडायरेक्ट


112

मैं ASP.NET 4.0 वेब एपीआई के लिए बहुत नया हूँ। क्या हम POST कार्रवाई के अंत में किसी अन्य URL पर रीडायरेक्ट कर सकते हैं ?, कुछ इस तरह ...Response.Redirect(url)

वास्तव में मैं www.abcmvc.comवेब एपीआई (कहना www.abcwebapi.com/upload) के माध्यम से एक एमवीसी एप्लिकेशन (कहना ) से फाइल अपलोड करता हूं

यहाँ uploadPOST क्रिया है। मैं वेब एपीआई अपलोड नियंत्रक की पोस्ट कार्रवाई के लिए एक बहु-भाग फॉर्म पोस्ट करता हूं। अपलोड करने के बाद मैं वापस रीडायरेक्ट करना चाहूंगा www.abcmvc.com

क्या यह संभव है?

जवाबों:


206

ज़रूर:

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

9
इस रीडायरेक्ट तकनीक के उपयोग से "ऑब्जेक्ट को स्थानांतरित किया गया" वेबएपीआई पेज को हल किया गया जो मुझे अन्य रीडायरेक्ट तकनीकों के साथ मिल रहा था। स्थायी के बजाय रीडायरेक्ट अस्थायी के लिए भी आप HttpStatusCode.Redirect(302) या .RedirectMethod(303) का उपयोग कर सकते हैं
आरोहोनल्स

@ डारिन दिमित्रोव, यह काम करता है। ऐसा क्यों है कि जब मैं HttpStatusCode.Redirect का उपयोग करता हूं, तो मेरे ग्राहक को 401 की प्रतिक्रिया मिलती है?
ब्रेट

26

यहाँ एक और तरीका है जिससे आप url को हार्ड कोडिंग के बिना अपनी वेबसाइट के मूल में ले सकते हैं:

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

नोट: केवल तभी काम करेगा जब आपकी MVC वेबसाइट और WebApi दोनों एक ही URL पर हों



5

आप इसे चेक कर सकते हैं

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

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

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

   return Redirect(uri);
}

1
@dotnetguy कृपया उसी संपादन को सुझाना बंद करें। यदि आप चाहते हैं, तो आप एक अलग उत्तर में बदल गए कोड को पोस्ट करें। संपादन जारी रखने का कोई मतलब नहीं है, समीक्षक प्रत्येक संपादन को बंद कर देंगे।
कास्पर ली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.