উত্তর:
অ্যাকশন এবং রুটের সাথে 1: 1 টি সম্পর্ক থাকতে হবে না।
অ্যাকশন লিঙ্কটি প্রথম নামের সাথে ক্রিয়া নামের সাথে মিল রেখে রুটে ব্যবহার করে কোনও ক্রিয়াকলাপটি পেতে URL টি উত্পন্ন করবে।
নাম বা রুটের মান দ্বারা নির্ধারিত নির্দিষ্ট রুটে একটি রুটলিঙ্ক একটি URL তৈরি করবে।
প্রকৃতপক্ষে, দুটি পদ্ধতি থেকে আউটপুট একই, তবে এটি কিছুটা ভিন্ন উপায়ে উত্পন্ন হয়:
Html.ActionLink()
অ্যাকশনলিঙ্কগুলি দ্রুত জেনারেট করা সহজ করে তোলে এবং যা রেন্ডার করা হয় তার উপর আপনাকে প্রাথমিক নিয়ন্ত্রণ দেয়। আপনার যদি খুব বেশি রুট না থাকে বা খুব বেশি বা খুব নির্দিষ্ট তথ্য দেওয়ার প্রয়োজন না হয় তবে এটি কাজটি ঠিকঠাক করবে।
Html.RouteLink()
পদ্ধতি কিছুটা ভিন্ন আর্গুমেন্ট লাগে, এবং এইভাবে পথ জিনিষ পরিচালনা করা হয় উপর একটু বেশি বিস্তারিত নিয়ন্ত্রণ দেয়। আমার পরিস্থিতি যখন একটু বেশি জটিল হয় বা যখন আমার আরও বিস্তারিত রুটের কাঠামো থাকে তখন আমি এই পদ্ধতিটি ব্যবহার করি।
একটি উদাহরণ একটি সাম্প্রতিক প্রকল্প যেখানে আমার (নমনীয়তার জন্য) পরিবর্তে বেশ কয়েকটি বিভিন্ন রুট ছিল, যেগুলি একদম জটিল ছিল যা প্রচুর তথ্যের জন্য অনুমতি দেয়। সুতরাং, আমি একই কন্ট্রোলারের জন্য চার বা পাঁচটি রুট দিয়ে শেষ করেছি, সমস্তই একটি ডিফল্ট ক্রিয়া নির্দিষ্ট করা আছে। আমি বেশিরভাগ RouteLink
সংস্করণটি ব্যবহার করেছি , কারণ যখন আমি কোনও রুটের নাম নির্দিষ্ট করেছি, তখন ডিফল্ট প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে প্রবেশ করা হত।
আপনি যেমন মনে করেন তেমন সেগুলি ব্যবহার করুন এবং তারা আপনার প্রকল্পে অর্থবোধ করে। তাদের উভয়েরই সত্যিই কোনও উল্টোপাল্টা / খারাপ দিক নেই (এটি অন্য কোনওটির সাথে মিলে না ...)।
এখানে প্রদত্ত অন্যান্য উত্তরের পাশাপাশি, রুটলিংকটি কিছুটা দ্রুত, এবং ভুল রুটের সাথে কখনও মিলতে পারে না কারণ আপনি নিজের রাটিং টেবিলটি পরিবর্তন করেছেন।
রুটলিঙ্কটি একটি রুটের নাম নেয়, সুতরাং যদি আপনার রুটের নামগুলি নির্ভরযোগ্য এবং মোটামুটি অনন্য হয় তবে ব্যবহারের নামটির পরিবর্তন করতে গেলেও এটি একই হবে। পরিবর্তে সুনির্দিষ্ট নিয়ন্ত্রকের একটি নির্দিষ্ট ক্রিয়ায় লিংকগুলি। আমি কোন ধরণের লিঙ্ক পরে আছি তার উপর নির্ভর করে আমি আমার দৃষ্টিতে উভয়ই ব্যবহার করি!