অন্য নিয়ামককে কর্মে পুনর্নির্দেশ করুন irect


124

আমার দু'জন কন্ট্রোলার রয়েছে, দুজনেই ডেকেছে AccountController। তাদের মধ্যে একজন দেয় সেটিতে কল Controller A, একটি হল Areaবলা Adminএবং অন্যান্য দেয় সেটিতে কল Controller B, কোন মধ্যে নেই Area(আমি অনুমান মানে এটি ডিফল্ট এর Area?)। Controller Bএকটি হয়েছে action methodবলা Login। আমার একটি action methodইন আছে Controller A, যার এই লাইন রয়েছে

return RedirectToAction("LogIn", "Account");

সমস্যা যে আমি একটি পাবেন 404যখন এই লাইন কারণ একটি প্রয়াস একটি অবর্তমান এ পুনর্চালিত করার জন্য তৈরি করা হয় মৃত্যুদন্ড কার্যকর করা actionমধ্যে Controller A। আমি কল করতে চান action methodমধ্যে Controller B। এটা কি সম্ভব?


উত্তর:


236

আপনি সরবরাহ করতে পারে areaমধ্যে routeValuesপ্যারামিটার। এটা চেষ্টা কর:

return RedirectToAction("LogIn", "Account", new { area = "Admin" });

অথবা

return RedirectToAction("LogIn", "Account", new { area = "" });

আপনি কোন অঞ্চলটির দিকে লক্ষ্য রাখছেন তার উপর নির্ভর করে।


যদি আমি কোনও নির্দিষ্ট অঞ্চলের দৃশ্য থেকে কোনও নিয়ামকের ক্রিয়াতে যেতে চাই যা কোনও অঞ্চলে নয় what এমভিসি 5 এর মতো, উপরের ডানদিকে লগঅফ বোতামটি অ্যাকাউন্টকন্ট্রোলারে রয়েছে যা কোনও অঞ্চলেই থাকে না। এবং আমি একটি নির্দিষ্ট অঞ্চলের একটি দৃশ্য থেকে লগঅফ করতে চাই ???
আওইস মাহমুদ

1
আমার দ্বিতীয় উদাহরণ, area = ""এটি আপনার জন্য করবে।
ররি ম্যাকক্রসন

এটি আমার জন্য এএসপি.নেট কোর নিয়ে কাজ করেছে .... আমি যখন সর্বশেষ সংস্করণে আপগ্রেড করেছি তখনই রিডাইরেক্টটঅ্যাকশনটি ভেঙে গেছে এবং খালি স্ট্রিং সহ আমি এরিয়া = "" ব্যবহার করে কাজ করতে পেলাম।
জোনাথন আলফারো

28

এটা ব্যবহার কর:

return RedirectToAction("LogIn", "Account", new { area = "" });

এটি "গ্লোবাল" অঞ্চলে নিয়ামকের LogInক্রিয়ায় পুনর্নির্দেশ করবে Account

এটি এই RedirectToActionওভারলোডটি ব্যবহার করছে :

protected internal RedirectToRouteResult RedirectToAction(
    string actionName,
    string controllerName,
    Object routeValues
)

দুটিই MSDN



2

এটা ব্যবহার কর:

    return this.RedirectToAction<AccountController>(m => m.LogIn());

1
আমি ধারণাটি পছন্দ করি। আমি সর্বদা রেডাইরেক্টোঅ্যাকশনের স্ট্রিং অংশটিকে ঘৃণা করেছি এবং ভেবেছিলাম আপনি যা প্রবেশ করেছেন তার মতোই এটি হওয়া উচিত তবে এটি ক্রোধে সি # তে উপস্থিত হয়। এটি কি ফ্রেমওয়ার্কগুলিতে আরও নতুন 4.6.2?
ব্যবহারকারী 3071434

@ ব্যবহারকারী 3071434 না, আপনি "মাইক্রোসফ্ট.ওয়েব.এমভিসি" ব্যবহার করে ব্যবহার করতে পারেন। আপনি স্ট্রিং অংশটি এড়াতে পারবেন এবং ভুল অ্যাকশন পাঠ্যের কারণে রানটাইমে একটি ত্রুটি পেতে হ্রাস করতে পারবেন
হিরেন প্যাটেল

0

এগুলি পরিবর্তন করার চেষ্টা করুন:

return RedirectToAction("Account", "Login");

আমি এটা চেস্টা করেছিলাম এবং এটা কাজও করেছিল.

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