এএসপি.নেট এমভিসি একটি ভিন্ন দৃশ্যে পুনঃনির্দেশ করুন


89

একটি নিয়ামক থেকে একটি পৃথক ভিউ পুনর্নির্দেশ করা সম্ভব?

উদাহরণস্বরূপ, আমার সমস্ত কন্ট্রোলার একটি কাস্টম নিয়ামকের কাছ থেকে উত্তরাধিকার সূত্রে উত্তরাধিকার সূত্রে প্রাপ্ত এমন একটি কনস্ট্রাক্টর রয়েছে যা নির্দিষ্ট মানদণ্ডগুলি পূরণ না করা হলে আমি ভিন্ন দৃষ্টিতে পুনর্নির্দেশ করতে চাই। আশা করি তা বোধগম্য হয়।

উত্তর:


147

আপনি RedirectToAction()পদ্ধতিটি ব্যবহার করতে পারেন , তারপরে আপনি যে ক্রিয়ায় পুনর্নির্দেশ করবেন সেটি কোনও দৃশ্য ফিরে আসতে পারে। এটি করার সবচেয়ে সহজ উপায় হ'ল:

return RedirectToAction("Index", model);

তারপরে আপনার সূচি পদ্ধতিতে, আপনার পছন্দমতো দর্শনটি ফিরিয়ে দিন।


4
যদি আমি এটি এভাবে করি তবে আমি কীভাবে কোনও নিয়ামক পদক্ষেপের থেকে কোনও নির্দিষ্ট দৃষ্টিভঙ্গি ফিরিয়ে আনব।
গাভিন

11
@ ক্রেইগ - রিটার্ন ভিউ রিডাইরেক্ট করে না এবং ইউআরএল আগের মতই শেষ হয়। সুতরাং, আপনি যদি "/ সম্পাদনা / মাই আইটেম" এ থাকেন তবে ভিউ ("শোয়েটেম") ফিরিয়ে দেওয়া আপনাকে "/ সম্পাদনা /" ইউআরএল সহ "শোয়েটম" ভিউ দেবে। আপনার পরিস্থিতির উপর নির্ভর করে এটি কাজ করতে পারে, তবে সবসময় না।
জেফ্রিপ্রিবি

4
@ জেফ্রে, এটি দুটি পৃথক পদক্ষেপ: জন বলেছিলেন, প্রথম ক্রিয়ায় পুনর্নির্দেশ করুন, তারপরে দ্বিতীয়টিতে দেখুন ফিরে আসুন। প্রথম ক্রিয়াটি (সরাসরি, যাইহোক) দ্বিতীয়টি কোন ভিউটি ব্যবহার করতে হবে তা বলতে পারে না।
ক্রেগ স্টান্টজ

@ ক্রেইগ যা কিছুটা সহায়তা করে। একটি "অ্যাকশন" এবং "ভিউ" রয়েছে - দুটি পৃথক জিনিস। তারপরে কেন আমার উত্তরটি নীচে কাজ করে: রিডাইরেক্টটোএকশন - দেখার কোনও পরিবর্তন নেই। আমি নিশ্চিত যে এটি। নেট এমভিসি 101 তবে আমি বুঝতে পারি না। ধন্যবাদ
jeffreypriebe

সম্পূর্ণতার স্বার্থে, এএসপি.নেট এমভিসি পুনঃনির্দেশটি ঘটে যাওয়ার জন্য একটি HTTP স্থিতি কোড 302 জারি করে।
aboy021

20
 if (true)
 {
   return View();
 }
 else
 {
   return View("another view name");
 }

4
এটি একই নিয়ামক অ্যাকশন ব্যবহার করে। RedirectToAction একটি আলাদা ক্রিয়া কল করে। এটি ছিল আমার পক্ষে সবচেয়ে সহজ সমাধান।
রাউলরবিন

6

সহজ উপায় হ'ল রিটার্ন ভিউ ব্যবহার করুন।

return View("ViewName");

মনে রাখবেন, "ভিউনাম" এর শারীরিক নামটি আপনার প্রকল্পের ভিউনাম.একএসটিএমএল জাতীয় কিছু হওয়া উচিত, যদি আপনি এমভিসি সি # / .NET ব্যবহার করেন।


4

আমি এর জন্য শর্তগুলি কী তা 100% নিশ্চিত নই, তবে আমার পক্ষে উপরেরগুলি সরাসরি কাজ করে নি, ভেবেছিল এটি কাছে এসেছে। আমি মনে করি এটি কারণ আমার মডেলটির জন্য আমার "আইডি" দরকার ছিল একে "অবজেক্টআইডি" বলা হয়েছিল।

আমার কাছে বিভিন্ন ধরণের তথ্যের টুকরো সহ একটি মডেল ছিল। আমি শুধু আইডি প্রয়োজন।

উপরের আগে আমি একটি নতুন সিস্টেম তৈরি করেছি W ওয়েব.রোটিং ing রুটভ্যালুড অভিধান অভিধান এবং প্রয়োজনীয় আইডি যুক্ত করেছি।

(System.Web.Routing.)RouteValueDictionary RouteInfo = new RouteValueDictionary();
RouteInfo.Add("id", ObjectID);
return RedirectToAction("details", RouteInfo);

(দ্রষ্টব্য: এমভিসি প্রকল্পের প্রশ্নে আমি তৈরি করি নি, সুতরাং সঠিক "ফিডলি" বিটগুলি কোথায় আছে তা আমি জানি না))


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