Asp.net ওয়েব এপিআই পোস্ট ক্রিয়া থেকে পুনঃনির্দেশ করুন irect


112

আমি ASP.NET 4.0 ওয়েব এপিআই তে খুব নতুন। পোস্টের ক্রিয়া শেষে আমরা কি অন্য URL টি পুনর্নির্দেশ করতে পারি? এরকম কিছু ...Response.Redirect(url)

আসলে আমি এমভিসি অ্যাপ্লিকেশন থেকে ফাইল আপলোড করি (বলুন www.abcmvc.com) ওয়েব এপিআইয়ের মাধ্যমে (বলুন www.abcwebapi.com/upload)

এখানে uploadপোস্ট পদক্ষেপ রয়েছে। আমি ওয়েব এপিআই আপলোড নিয়ন্ত্রকের পোস্ট ক্রিয়ায় একাধিক অংশ ফর্ম পোস্ট করি। আপলোড করার পরে আমি আবার ফিরে যেতে চাই 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

ইউআরএলকে কোডিং না দিয়ে আপনি নিজের ওয়েবসাইটটিতে যেতে পারবেন এমন আরও একটি উপায় এখানে রয়েছে:

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

দ্রষ্টব্য: আপনার এমভিসি ওয়েবসাইট এবং ওয়েবএপি উভয়ই একই ইউআরএলে থাকলে কেবল কাজ করবে



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
@ ডটনেটগুই দয়া করে একই সম্পাদনা করার পরামর্শ দেওয়া বন্ধ করুন। আপনি যদি চান তবে একটি পৃথক উত্তরে আপনার পরিবর্তিত কোডটি পোস্ট করুন। সম্পাদনা চালিয়ে যাওয়ার কোনও মানে নেই, পর্যালোচকরা প্রতিটি সম্পাদনা নীচে নেবেন।
কাস্পার লি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.