এএসপি.নেট এমভিসি নিয়ামক থেকে বাহ্যিক ইউআরআইতে পুনঃনির্দেশ করুন


170

আমি একটি অ্যাকশন পদ্ধতি থেকে বাহ্যিক url এ পুনঃনির্দেশের চেষ্টা করছি তবে এটি কাজ করতে পারে না। কেউ কি আমার ত্রুটি সম্পর্কে কিছু আলোকপাত করতে পারে?

public void ID(string id)
    {
        string url = string.Empty;
        switch (id)
        {
            case "DB2FCB11-579F-4DA2-A68C-A6495B9BAAB5":

                url = "http://www.somesite.com";
                break;
        }
        Response.Redirect(url, true);
    }

ধন্যবাদ, ক্রিস


1
তোমার ত্রুটি কী? নাকি লক্ষণ? এটি কি কোথাও যায়?
— পল স্যাসিক

উত্তর:


342

আপনি যদি এএসপি.নেট এমভিসির কথা বলছেন তবে আপনার কাছে একটি নিয়ামক পদ্ধতি থাকা উচিত যা নিম্নলিখিতগুলি ফেরত দেয়:

return Redirect("http://www.google.com");

অন্যথায় আপনি পুনর্নির্দেশে যে ত্রুটিটি পেয়ে যাচ্ছেন তার বিষয়ে আমাদের আরও তথ্য দরকার। Url খালি নেই তা নিশ্চিত করার জন্য আমি পদক্ষেপ নেব


5
Ptionচ্ছিকভাবে, আপনি পরিবর্তে এটি করতে পারেন: নতুন পুনর্নির্দেশ ফলাফল ("আপনার ইউআরএল", সত্য) ফিরিয়ে দিন; যা প্রায় একই রকম, তবে এটি আপনাকে স্থায়ীভাবে পুনর্নির্দেশ করা হবে কিনা তা নির্দেশ করার জন্য আপনাকে প্যারামিটারটি দেয় (HTTP 301 বনাম কিছু অন্য, 307 হয়তো?)
— সিটিবি

@ মিঃ পিচলার সম্ভবত 302, তবে আপনি সর্বদা ফিডলারের সাথে চেক করতে পারেন।
— ইউরি ফক্টোরিভিচ

1
পুনর্চালনা (Rul) 302 এবং RedirectPermanent (URL) 301. চেক করুন: stackoverflow.com/questions/17517318/...
— টিঅ্যান্ডটি

স্থানীয় এইচটিএমএল ফাইল দিয়ে এই কাজটি করার বিষয়ে কোনও চিন্তাভাবনা? কাজ করে না:> রিডাইরেক্ট রিটার্ন করুন ("সি: / ইউজারস / মে / ডকুমেন্টস / টেস্ট এইচটিএমএল");
— স্টিভ এগারিং

1
আউট চেক @SteveEggering stackoverflow.com/questions/10830212/...
— Yuriy Faktorovich

15

জাভাস্ক্রিপ্ট ব্যবহার করে

 public ActionResult Index()
 {
    return Content("<script>window.location = 'http://www.example.com';</script>");
 }

দ্রষ্টব্য: @ জেরেমি রে ব্রাউন যেমন বলেছিলেন, এটি সেরা বিকল্প নয় তবে আপনি কিছু পরিস্থিতিতে দরকারী হতে পারেন।

আশাকরি এটা সাহায্য করবে.


1
এর মতো কিছু কাজ করতে পারে তবে একটি কন্ট্রোলার সিদ্ধান্ত নেয় যে কোন পদক্ষেপটি করা উচিত। জড়িত হওয়ার জন্য আপনার কোনও স্ক্রিপ্টের দরকার নেই।
— জেরেমি রে ব্রাউন

6
বিশ্বাস করুন বা না করুন, এই পদ্ধতির মতো কিছু আমাকে সহায়তা করেছিল। আমাদের কাছে একটি হাইব্রিড এএসপি.নেট এমভিসি / অ্যাঙ্গুলারজেএস অ্যাপ্লিকেশন রয়েছে যাতে সমস্ত জায়গাতেই প্রচুর পুরানো ওয়েব ফর্ম কোড রয়েছে। আমি একটি URL এ পুনঃনির্দেশের অনুরূপ কিছু ব্যবহার করেছি যা কৌণিক রাউটিং ব্যবহার করে। যেহেতু কৌণিক রাউটিংটি ইউআরএলে একটি # চিহ্ন অনুসরণ করে, এটি কেবল ক্লায়েন্ট-সাইড হিসাবে স্বীকৃত, সুতরাং এই জাতীয় URL গুলির জন্য পুনঃনির্দেশ ব্যবহার করা যাবে না।
— জরিমানা

@ টিএনটি হ্যাঁ আপনি সঠিক, আমি এটি কেবল একটি বিকল্প হিসাবে সরবরাহ করেছি, যা অন্যদের জন্য কার্যকর হতে পারে।
— শাইজুট

1
দুঃখিত যদি আমি ভদ্র @ স্টম না হতাম। গুগল অ্যানালিটিকাসমূহে গণনা করা এক দর্শন যেমন পুনঃনির্দেশ সহ কিছু স্ক্রিপ্ট চালানোর দরকার হয় তখন আমি এই পদ্ধতিটি ব্যবহার করি।
— টিএনটি

এটি অবশেষে কাজ করে। @ ইউরির সোজাসাপ্টা পুনঃনির্দেশ সমাধান আমার পক্ষে ব্যর্থ। সুরক্ষার কারণে আমাদের এমভিসি অ্যাপ্লিকেশনে যাওয়ার অনুরোধগুলি অবশ্যই প্রক্সি সার্ভারের মাধ্যমে ক্রল করতে হবে - আইআইএস পুনর্লিখনের সাথে অ্যাডইন + পুনর্লিখনের নিয়ম। এই সংমিশ্রণটি সম্ভবত ইউআরএল রিরেক্ট করে mes সুতরাং। যখন আমি থেকে পুনর্নির্দেশ করতে চান example.com/action করার example.org/?search=xyz ব্যবহার return Redirect("https://www.example.org/?search=xyz");ফলাফলের এ পুনঃনির্দেশিত হচ্ছে example.com/?search=xyz ।
— ক্র্যাকেন 101



-3

এটি ব্যবহার করে দেখুন (আমি হোম কন্ট্রোলার এবং সূচক ভিউ ব্যবহার করেছি):

return RedirectToAction("Index", "Home");

এটি কোনও বাহ্যিক ইউআরআই এবং তার পরিবর্তে হোম কন্ট্রোলারের সূচক ক্রিয়ায় পুনর্নির্দেশ করবে না।
— অ্যান্থনি পটস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.