"RedirectToAction" ব্যবহার করে নিয়ামক থেকে একটি হ্যাশ এ পুনঃনির্দেশ


89

হ্যালো আমি এমভিসি কন্ট্রোলারের কাছ থেকে একটি অ্যাঙ্কর ফিরিয়ে দিতে চাই

নিয়ামকের নাম = DefaultController;

public ActionResult MyAction(int id)
{
        return RedirectToAction("Index", "region")
}

যাতে সূচী নির্দেশিত url থাকে

http://localhost/Default/#region

যাতে

<a href=#region>the content should be focus here</a>

আপনি যদি এটি এটি করতে পারেন তবে আমি জিজ্ঞাসা করছি না: আমি কীভাবে আমার ইউআরএলে একটি অ্যাঙ্কর ট্যাগ যুক্ত করতে পারি?



উত্তর:


134

আমি এইভাবে খুঁজে পেয়েছি:

public ActionResult MyAction(int id)
{
    return new RedirectResult(Url.Action("Index") + "#region");
}

আপনি এই ভার্বোজ উপায়টি ব্যবহার করতে পারেন:

var url = UrlHelper.GenerateUrl(
    null,
    "Index",
    "DefaultController",
    null,
    null,
    "region",
    null,
    null,
    Url.RequestContext,
    false
);
return Redirect(url);

http://msdn.microsoft.com/en-us/library/ee703653.aspx


4
আপনি একজন জেনিয়েন্ট সাথী! এখানে আমি কী করতে পেরেছি: নতুন রিডাইরেক্টারসাল্ট (url.Action ("সূচক"), নতুন {PKMvrEmployeeId = MvrId}) + "#region") ফিরিয়ে দিন;
লুকানো আছে

4
পুনঃনির্দেশ (..) পদ্ধতি কল করার পরিবর্তে RedirectResult ব্যবহারের জন্য +1। রিলিজ এবং আইআইএস V এর অধীনে এমভিসিতে আপনি পুনর্নির্দেশের কারণে ব্যতিক্রমগুলি শেষ করতে পারেন কারণ একটি অনুরোধ সম্ভবত ইতিমধ্যে পুনঃনির্দেশিত, বা কোনও শিশু ক্রিয়াকলাপের অংশ, বা সামগ্রী ইতিমধ্যে পাঠানো হয়েছে।
জানস

4
এমভিসি 5-এ, RedirectToAction ব্যবহার করার সময় এটি #% থেকে% 23 এ পালিয়ে যায় বলে মনে হয়। অন্য কেউ কি এটা অনুভব করছে?
জেকেজগর্ডন

আমার জন্য, যখন আমি একই পদ্ধতি ব্যবহার করি তখন এটি আবার ফিরে আসে।
জিশন আহমদ খলিল

14

দুর্দান্ত উত্তর gdoron। এখানে আমি ব্যবহার করি এমন আরও একটি উপায় (কেবলমাত্র এখানে উপলভ্য সমাধানগুলিতে যুক্ত করতে)।

return Redirect(String.Format("{0}#{1}", Url.RouteUrl(new { controller = "MyController", action = "Index" }), "anchor_hash");

স্পষ্টতই, জিডোরনের উত্তরের সাথে এই সাধারণ ক্ষেত্রে নিম্নলিখিতটি দিয়ে এটি পরিষ্কার-পরিচ্ছন্ন করা যেতে পারে;

return new RedirectResult(Url.Action("Index") + "#anchor_hash");

আপনার ক্রিয়াটি অন্য কোনও নিয়ামকের মধ্যে থাকলে প্রথম বিকল্পটি ভাল কাজ করে।
চাদ হেডককক

11

ডট নেট কোর একটি সহজ উপায়

public IActionResult MyAction(int id)
{
    return RedirectToAction("Index", "default", "region");
}

উপরের ফলন / ডিফল্ট / সূচক # অঞ্চল । তৃতীয় প্যারামিটারটি খণ্ড যা এটি একটি # এর পরে যুক্ত করে।

মাইক্রোসফ্ট ডক্স - কন্ট্রোলারবেস


4

স্কোভেলের উত্তরে প্রসারিত করার জন্য: স্ট্রিং ইন্টারপোলেশন ব্যবহার ক্লিনার কোড তৈরি করে। এটি বিভিন্ন কন্ট্রোলারের ক্রিয়াকলাপের জন্যও কাজ করে।

return Redirect($"{Url.RouteUrl(new { controller = "MyController", action = "Index" })}#anchor");
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.