অন্য নিয়ামক থেকে সূচকে কীভাবে পুনঃনির্দেশ করা যায়?


129

আমি Indexঅন্য নিয়ামকের কাছ থেকে ভিউতে পুনর্নির্দেশের কিছু উপায় খুঁজতে চেষ্টা করে যাচ্ছি ।

public ActionResult Index()
{                
     ApplicationController viewModel = new ApplicationController();
     return RedirectToAction("Index", viewModel);
}

এই মুহূর্তে আমি এই চেষ্টা করেছি। এখন আমাকে যে কোডটি দেওয়া হয়েছিল তার একটি ActionLinkপৃষ্ঠা রয়েছে যা Redirectআমারও খুব দরকার ।

@Html.ActionLink("Bally Applications","../Application")

উত্তর:


272

নিয়ন্ত্রণের নামও নেয় এমন ওভারলোডগুলি ব্যবহার করুন ...

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

এবং

@Html.ActionLink("Link Name","Index", "MyController", null, null)

3
ঠিক আছে এই কাজ। আমি আগে এটি করার আগে অবশ্যই এটি টাইপো হওয়া উচিত।
cjohnson2136

2
তাড়াতাড়ি তা করতে
পেরেছিল

আহা, আমাদের জন্য এমভিসি নতুনদের এটি অত্যন্ত সহায়ক ছিল। আমি কেবল এটি পড়া না হওয়া অবধি কেবলমাত্র একটি ভিন্ন নিয়ামক দ্বারা উপস্থাপিত ভিন্ন ফোল্ডারে অন্য দর্শনে পুনর্নির্দেশ করা আমার দ্বারা আসছিল।
এটকনওয়ে

একটি নিয়ামক ছাড়া একটি ভিউ পুনর্নির্দেশ কিভাবে? যেমনShared/Error
ডিলান জেজেনস্কি 20'16

28

চেষ্টা করে দেখুন:

public ActionResult Index() {
    return RedirectToAction("actionName");
    // or
    return RedirectToAction("actionName", "controllerName");
    // or
    return RedirectToAction("actionName", "controllerName", new {/* routeValues, for example: */ id = 5 });
}

এবং .cshtmlদেখুন:

@Html.ActionLink("linkText","actionName")

বা:

@Html.ActionLink("linkText","actionName","controllerName")

বা:

@Html.ActionLink("linkText", "actionName", "controllerName", 
    new { /* routeValues forexample: id = 6 or leave blank or use null */ }, 
    new { /* htmlAttributes forexample: @class = "my-class" or leave blank or use null */ })

লক্ষ্য করুন ব্যবহার nullচূড়ান্ত এক্সপ্রেশনে বাঞ্ছনীয় নয়, এবং একটি ফাঁকা ব্যবহার করা ভাল new {}পরিবর্তেnull


3
আপনার নোটিশের বিষয়ে, কোন কারণে এর new {}পরিবর্তে ব্যবহার করা ভাল null?
musefan

16

আপনি নিম্নলিখিত কোড ব্যবহার করতে পারেন:

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

RedirectToAction দেখুন


আমি এটি চেষ্টা করেছিলাম এবং এটি কার্যকর হয়নি। এটি আমাকে পৃষ্ঠায় ত্রুটিটি খুঁজে পাওয়া যায়নি
cjohnson2136

"নিয়ন্ত্রক" এর সাথে থাকা উচিত: return RedirectToAction("Index", "Home");
হিরাথ

আমার "/ সূচক" অন্যথায় খুঁজে পাওয়া যায় নি
কোড

@ কোড4j আপনি কীভাবে আপনার ডিফল্ট রুটগুলি সংজ্ঞায়িত করেছেন? আপনি কি নিয়ামক এবং ক্রিয়াটির জন্য ডিফল্ট মান যুক্ত করেছেন?
ওয়াউটার ডি কর্ট

2

আপনি ওভারলোড পদ্ধতি ব্যবহার করতে পারেন RedirectToAction(string actionName, string controllerName);

উদাহরণ:

RedirectToAction(nameof(HomeController.Index), "Home");

1

আপনি স্থানীয় পুনর্নির্দেশ ব্যবহার করতে পারেন। নিম্নলিখিত কোডগুলি হোম কন্ট্রোলারের সূচক পৃষ্ঠাটিতে ঝাঁপিয়ে পড়েছে:

public class SharedController : Controller
    {
        // GET: /<controller>/
        public IActionResult _Layout(string btnLogout)
        {
            if (btnLogout != null)
            {
                return LocalRedirect("~/Index");
            }

            return View();
        }
}

0

সম্পূর্ণ উত্তর (। নেট কোর 3.1)

এখানে বেশিরভাগ উত্তর সঠিক তবে প্রসঙ্গের বাইরে কিছুটা নেওয়া হয়েছে, সুতরাং আমি একটি পূর্ণাঙ্গ উত্তর সরবরাহ করব যা এসপ নেট নেট 3.1 এর জন্য কাজ করে। সম্পূর্ণতার জন্য:

[Route("health")]
[ApiController]
public class HealthController : Controller
{
    [HttpGet("some_health_url")]
    public ActionResult SomeHealthMethod() {}
}

[Route("v2")]
[ApiController]
public class V2Controller : Controller
{
    [HttpGet("some_url")]
    public ActionResult SomeV2Method()
    {
        return RedirectToAction("SomeHealthMethod", "Health"); // omit "Controller"
    }
}

আপনি যদি url- নির্দিষ্ট স্ট্রিংগুলির কোনও ব্যবহার করার চেষ্টা করেন, উদাহরণস্বরূপ "some_health_url", এটি কার্যকর হবে না!

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