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


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.