ASP.Net MVC (Model-View-Controller) আর্কিটেকচারে, View হলো সেই অংশ যা ব্যবহারকারীর কাছে ডাটা প্রদর্শন করে। এটি সাধারণত Razor ভিউ ইঞ্জিন ব্যবহার করে HTML এবং C# কোডের সংমিশ্রণ তৈরি করে। ASP.Net Core MVC অ্যাপ্লিকেশনে, View তৈরি এবং কনফিগার করা সহজ এবং এটি MVC এর একটি গুরুত্বপূর্ণ অংশ।
View হলো ব্যবহারকারীর সামনে দেখানোর জন্য একটি পৃষ্ঠা বা টেমপ্লেট যা ডাইনামিক HTML তৈরি করে। এটি সাধারণত Model থেকে ডাটা নেয় এবং তা HTML এর মাধ্যমে প্রদর্শন করে। ASP.Net Core MVC-এ View সাধারণত Razor ফাইল (.cshtml) হিসেবে তৈরি হয়।
Razor হলো একটি সিঙ্গেল-টেমপ্লেট ইঞ্জিন যা C# কোড এবং HTML কে একসাথে ব্যবহার করার সুযোগ দেয়। Razor ফাইলের একক এক্সটেনশন হল .cshtml
এবং এতে HTML, C#, এবং Razor সিনট্যাক্স ব্যবহার করা যায়।
প্রথমে আপনাকে একটি Controller তৈরি করতে হবে। Controller সাধারণত অনুরোধের প্রতি প্রতিক্রিয়া হিসেবে Action মেথডের মাধ্যমে ডাটা View এ পাঠায়।
public class HomeController : Controller
{
public IActionResult Index()
{
var products = new List<string> { "Product 1", "Product 2", "Product 3" };
return View(products); // ডাটা View এ পাঠানো হচ্ছে
}
}
এখানে, Index
মেথডে একটি লিস্টের মাধ্যমে ডাটা পাঠানো হচ্ছে, যা View-এ প্রদর্শিত হবে।
এখন আপনাকে Views ফোল্ডারে Home নামে একটি ফোল্ডার তৈরি করতে হবে (যেহেতু কন্ট্রোলারের নাম HomeController)। তারপর Index.cshtml নামে একটি Razor ফাইল তৈরি করুন।
/Views
/Home
Index.cshtml
Index.cshtml ফাইলের মধ্যে HTML এবং Razor সিনট্যাক্স ব্যবহার করে ডাটা প্রদর্শন করা হয়।
@model IEnumerable<string> <!-- এখানে ViewModel (ইউজার ডাটা) প্রাপ্ত হচ্ছে -->
<!DOCTYPE html>
<html>
<head>
<title>Products</title>
</head>
<body>
<h1>Product List</h1>
<ul>
@foreach(var product in Model) <!-- Model এর মধ্যে পাঠানো ডাটা -->
{
<li>@product</li> <!-- প্রতিটি প্রোডাক্ট প্রদর্শন করা হচ্ছে -->
}
</ul>
</body>
</html>
এখানে, @model
ডিরেকটিভের মাধ্যমে আপনি কন্ট্রোলার থেকে আসা ডাটা Model হিসেবে View এ গ্রহণ করছেন। এরপর foreach লুপ ব্যবহার করে সেই ডাটা HTML এর মধ্যে প্রদর্শন করা হচ্ছে।
ASP.Net Core MVC অ্যাপ্লিকেশনে, View কনফিগারেশন সাধারণত _ViewStart.cshtml এবং _Layout.cshtml ফাইলের মাধ্যমে করা হয়। এই ফাইলগুলির মাধ্যমে আপনি View এর লেআউট, অংশ এবং সাধারণ কনফিগারেশন নির্ধারণ করতে পারেন।
_ViewStart.cshtml ফাইলটি আপনাকে প্রতিটি View এর জন্য সাধারণ কনফিগারেশন করতে দেয়। এটি সাধারণত Views
ফোল্ডারে থাকে এবং সমস্ত ভিউ ফাইলের জন্য প্রাথমিক কনফিগারেশন নির্ধারণ করে।
@{
Layout = "_Layout"; <!-- সকল View এর জন্য লেআউট পাতা নির্ধারণ -->
}
এখানে, Layout প্রপার্টি ব্যবহার করে একটি সাধারণ লেআউট পাতা _Layout.cshtml
নির্ধারণ করা হয়েছে, যা সমস্ত ভিউয়ের জন্য একযোগভাবে ব্যবহৃত হবে।
_Layout.cshtml ফাইলটি একটি সাধারণ লেআউট ফাইল, যা সমস্ত ভিউয়ের জন্য একটি কাঠামো প্রদান করে। এখানে সাধারণত header, footer, এবং sidebars ইত্যাদি থাকে, যা বিভিন্ন ভিউতে পুনরায় ব্যবহৃত হয়।
<!DOCTYPE html>
<html>
<head>
<title>@ViewData["Title"]</title>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/Products">Products</a></li>
</ul>
</nav>
</header>
<main>
@RenderBody() <!-- এখানে অন্যান্য ভিউয়ের কন্টেন্ট যুক্ত হবে -->
</main>
<footer>
<p>© 2024 My ASP.Net Application</p>
</footer>
</body>
</html>
এখানে, @RenderBody() দ্বারা ভিউয়ের কন্টেন্ট লোড করা হয়। যখন আপনি কোন View তৈরি করবেন, তখন তার কন্টেন্ট এই অংশে প্রদর্শিত হবে।
Partial View হলো ছোট, পুনঃব্যবহারযোগ্য ভিউ যা একটি ভিউতে আংশিকভাবে ইনক্লুড করা হয়। এটি সাধারণত ছোট অংশ (যেমন একটি পণ্য লিস্ট, টেবিল, অথবা ফর্ম) প্রদর্শন করতে ব্যবহৃত হয়।
@model string
<div class="product">
<p>@Model</p>
</div>
public IActionResult Index()
{
var products = new List<string> { "Product 1", "Product 2", "Product 3" };
return View(products);
}
@foreach (var product in Model)
{
@Html.Partial("_ProductPartial", product) <!-- Partial View ব্যবহার করা হচ্ছে -->
}
Razor Pages একটি ফিচার যা ASP.Net Core-এ MVC এর থেকে আলাদা, যেখানে প্রতিটি পেজের জন্য একটি আলাদা Razor পেজ এবং পেজ মডেল থাকে। যদিও Razor Pages এবং MVC Views উভয়ই Razor ব্যবহার করে, তবে Razor Pages কিছুটা সরলীকৃত পদ্ধতিতে কাজ করে।
Read more