Strongly Typed Views

Web Development - এএসপি ডট (ASP.Net) - মডেলস এবং ডাটাবাইন্ডিং |

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 Views এর সুবিধা

  1. Compile-Time Checking: মডেল টাইপ সংক্রান্ত ভুলগুলি রানটাইমের পরিবর্তে কম্পাইল টাইমে চেক করা হয়।
  2. IntelliSense: Visual Studio বা অন্য কোনো IDE ব্যবহার করার সময় IntelliSense এর সুবিধা পাওয়া যায়, যা কোড লেখার সময় প্রপার্টি এবং মেথডের পরামর্শ দেয়।
  3. Type Safety: ভিউ ফাইলের মধ্যে টাইপ মেলে না এমন কোন ডেটা ব্যবহারের জন্য ত্রুটি দেখায়, যা রানটাইমে সমস্যা সৃষ্টি করতে পারে।
  4. Code Readability: কোডটি আরও পরিষ্কার ও মানানসই হয়, কারণ আপনি জানেন যে কোন ভিউ কিসের জন্য ব্যবহৃত হচ্ছে এবং কী ধরনের ডেটা আশা করা হচ্ছে।

Strongly Typed View তৈরি করার জন্য ধাপসমূহ

১. Controller এ মডেল পাস করা

একটি 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 ভিউ ফাইলে মডেল টাইপ ডিফাইন করা

ভিউ ফাইলে মডেল টাইপ ডিফাইন করতে, 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 দিয়ে মডেলটির প্রপার্টি রেন্ডার করা হয়েছে।


Strongly Typed View এবং Partial Views

আপনি যদি Partial Views ব্যবহার করেন, তাহলে তাও strongly typed করা যেতে পারে। Partial View-এও আপনি একইভাবে মডেল টাইপ ডিফাইন করবেন।

উদাহরণ:

  1. Controller এ Partial View পাস করা:

    public IActionResult GetProductDetails()
    {
        var product = new Product { Name = "Smartphone", Price = 800 };
        return PartialView("_ProductDetails", product);
    }
    
  2. 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

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] অ্যাট্রিবিউট দিয়ে ভ্যালিডেশন সেট করা হয়েছে।

Razor ভিউতে Validation Display করা

@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 ব্যবহার করে আপনি সহজেই ডাইনামিক ডেটা রেন্ডার করতে পারেন এবং কোডের ভেতরে টাইপ মিসম্যাচের জন্য ভুল কম্পাইলটাইমে ধরতে পারেন। এটি ডেভেলপারদের জন্য কোড আরও পরিষ্কার, সুরক্ষিত এবং রক্ষণাবেক্ষণে সহজ করে তোলে।

Content added By
Promotion