Strongly Typed Views হলো ASP.Net MVC বা ASP.Net Core MVC অ্যাপ্লিকেশনগুলিতে এমন ভিউ, যেখানে model বা ডেটা ক্লাস নির্দিষ্টভাবে টাইপ করা থাকে। এটি ভিউ ফাইলকে একটি নির্দিষ্ট model টাইপের সাথে যুক্ত করে, যা ভিউতে ব্যবহৃত ডেটা সম্পূর্ণভাবে টাইপ সেফ (type-safe) করে তোলে।
Razor ভিউ ইঞ্জিনে Strongly Typed Views ব্যবহার করা হলে, আপনার Model অবজেক্টের প্রপার্টি এবং মেথডগুলির জন্য IntelliSense এবং compile-time checking সুবিধা পাওয়া যায়। এর ফলে কোড লেখার সময় ভুল করার সম্ভাবনা কমে যায় এবং কোড আরও পরিষ্কার, সুরক্ষিত ও সহজে বজায় রাখা সম্ভব হয়।
একটি strongly typed ভিউ তৈরি করতে, প্রথমে আপনি আপনার Controller থেকে একটি model ভিউতে পাস করবেন। সাধারণত ActionResult এর মাধ্যমে এটি করা হয়।
উদাহরণ:
public class HomeController : Controller
{
public IActionResult Index()
{
var model = new Product
{
Name = "Laptop",
Price = 1200
};
return View(model);
}
}
এখানে, Product একটি মডেল যা Name এবং Price প্রপার্টি ধারণ করে। এই মডেলটি View এ পাস করা হচ্ছে।
ভিউ ফাইলে মডেল টাইপ ডিফাইন করতে, Razor এ @model নির্দেশক ব্যবহার করতে হয়।
@model YourNamespace.Models.Product
<!DOCTYPE html>
<html>
<head>
<title>Product Details</title>
</head>
<body>
<h1>Product Name: @Model.Name</h1>
<p>Price: @Model.Price</p>
</body>
</html>
এখানে, @model YourNamespace.Models.Product দ্বারা ভিউটি Product মডেল টাইপের সাথে যুক্ত করা হয়েছে। তারপর, @Model.Name এবং @Model.Price দিয়ে মডেলটির প্রপার্টি রেন্ডার করা হয়েছে।
আপনি যদি Partial Views ব্যবহার করেন, তাহলে তাও strongly typed করা যেতে পারে। Partial View-এও আপনি একইভাবে মডেল টাইপ ডিফাইন করবেন।
Controller এ Partial View পাস করা:
public IActionResult GetProductDetails()
{
var product = new Product { Name = "Smartphone", Price = 800 };
return PartialView("_ProductDetails", product);
}
Partial View (/_ProductDetails.cshtml):
@model YourNamespace.Models.Product
<div>
<h3>@Model.Name</h3>
<p>Price: @Model.Price</p>
</div>
এখানে, _ProductDetails partial view একটি strongly typed ভিউ, যেখানে Product
মডেল পাস করা হচ্ছে।
Strongly Typed Views ব্যবহার করে আপনি model validation এর সুবিধাও নিতে পারেন। ASP.Net MVC এবং ASP.Net Core MVC তে Data Annotations ব্যবহার করে মডেল ভ্যালিডেশন করা যায়।
public class Product
{
[Required(ErrorMessage = "Product Name is required")]
public string Name { get; set; }
[Range(1, 10000, ErrorMessage = "Price must be between 1 and 10000")]
public decimal Price { get; set; }
}
এখানে, Product মডেলে [Required] এবং [Range] অ্যাট্রিবিউট দিয়ে ভ্যালিডেশন সেট করা হয়েছে।
@model YourNamespace.Models.Product
<form method="post">
<div>
<label for="Name">Product Name:</label>
<input type="text" id="Name" name="Name" value="@Model.Name" />
@Html.ValidationMessageFor(model => model.Name)
</div>
<div>
<label for="Price">Price:</label>
<input type="text" id="Price" name="Price" value="@Model.Price" />
@Html.ValidationMessageFor(model => model.Price)
</div>
<button type="submit">Submit</button>
</form>
এখানে, @Html.ValidationMessageFor ব্যবহার করে মডেল ভ্যালিডেশন ত্রুটি প্রদর্শন করা হচ্ছে।
Strongly Typed Views ASP.Net MVC এবং ASP.Net Core MVC অ্যাপ্লিকেশনগুলিতে একটি শক্তিশালী টুল যা model এবং view এর মধ্যে সম্পর্ক স্থাপন করে এবং কোডে টাইপ সেফটি ও কম্পাইল টাইম চেকিং নিশ্চিত করে। Razor সিনট্যাক্সে @model ব্যবহার করে আপনি সহজেই ডাইনামিক ডেটা রেন্ডার করতে পারেন এবং কোডের ভেতরে টাইপ মিসম্যাচের জন্য ভুল কম্পাইলটাইমে ধরতে পারেন। এটি ডেভেলপারদের জন্য কোড আরও পরিষ্কার, সুরক্ষিত এবং রক্ষণাবেক্ষণে সহজ করে তোলে।
Read more