হাসিব, তোমার দেওয়া টপিকগুলোর ওপর ভিত্তি করে ASP.NET Core MVC-এর এই কুইক চিটশিটটি বানিয়ে দিলাম। প্রজেক্টের কাজ বা ইন্টারভিউয়ের আগে ঝালিয়ে নিতে বেশ কাজে দেবে।

ডেটা পাসিং (কন্ট্রোলার থেকে ভিউ)

কন্ট্রোলার থেকে ভিউতে ডেটা পাঠানোর প্রধান তিনটি উপায়:

মাধ্যমটাইপব্যবহারবৈশিষ্ট্য
ViewDataDictionaryViewData[“Title”] = “Home”Loosely typed। ভিউতে রিসিভ করার সময় টাইপ কাস্টিং লাগে।
ViewBagDynamicViewBag.Title = “Home”ViewData-র ডাইনামিক রূপ। টাইপ কাস্টিং লাগে না, তবে রানটাইমে এরর আসতে পারে।
Strongly TypedModel Class@model App.Models.UserCompile-time চেকিং হয়। ডেটা পাঠানোর সবচেয়ে নিরাপদ উপায়।

গ্লোবাল ভিউ ফাইলস

ভিউ ইঞ্জিন কাজ শুরু করার আগে এই দুটি ফাইল সবচেয়ে গুরুত্বপূর্ণ ভূমিকা পালন করে:

  • _ViewStart.cshtml: অ্যাপের সব ভিউয়ের জন্য ডিফল্ট লেআউট সেট করে দেয়। এর ফলে প্রতিটা ভিউতে গিয়ে বারবার লেআউটের পাথ বলে দিতে হয় না।
  • _ViewImports.cshtml: গ্লোবাল নেমস্পেস এবং ট্যাগ হেল্পার (Tag Helpers) ইম্পোর্ট করার জন্য ব্যবহার হয়। একবার এখানে ডিক্লেয়ার করলে সব ভিউ থেকে এক্সেস পাওয়া যায়।

লেআউট এবং রেন্ডারিং

পুরো অ্যাপ্লিকেশনের UI স্ট্রাকচার ঠিক রাখতে এগুলো ব্যবহৃত হয়:

টপিককাজকীভাবে ব্যবহার করতে হয়
Layout Viewঅ্যাপের মাস্টার পেজ (যেমন: Header, Footer)।ভিউতে Layout = “_Layout”; লিখে।
RenderBody()লেআউটের ভেতরে ঠিক যে জায়গায় মূল ভিউ রেন্ডার হবে।লেআউট ফাইলের ভেতরে @RenderBody()
Sectionsনির্দিষ্ট ভিউ থেকে লেআউটে কাস্টম স্ক্রিপ্ট বা স্টাইল পাঠানো।লেআউটে @RenderSection(“Scripts”, false)
Html.Raw()কোনো স্ট্রিংকে সরাসরি HTML হিসেবে রেন্ডার করা।@Html.Raw(“Hello”)

Partial View বনাম View Component

UI-এর ছোট ছোট অংশ রিইউজ করার জন্য এই দুটির তুলনা প্রায়ই ইন্টারভিউতে আসে:

বৈশিষ্ট্যPartial ViewView Component
প্রধান কাজসিম্পল বা স্ট্যাটিক UI মার্কআপ রিইউজ করা।কমপ্লেক্স লজিকসহ UI রিইউজ করা (মিনি কন্ট্রোলার)।
লজিক ক্লাসনিজস্ব কোনো C# ক্লাস থাকে না।নিজস্ব C# ক্লাস থাকে, যেখানে ডিপেন্ডেন্সি ইনজেকশন করা যায়।
ডেটা সোর্সপ্যারেন্ট ভিউ বা কন্ট্রোলার থেকে ডেটা নেয়।ডেটাবেস বা এপিআই থেকে স্বাধীনভাবে ডেটা আনতে পারে।
ভিউ কল করা<vc:cart-summary />
কোড কল করাreturn PartialView();return ViewComponent();

কোনো নির্দিষ্ট টপিকের (যেমন: Strongly Typed Views with Multiple Models বা ViewComponentResult) কোড এক্সাম্পল লাগলে জানাতে পারো।