Razor একটি view engine যা ASP.Net (বিশেষত ASP.Net Core MVC এবং ASP.Net MVC) এর সাথে ব্যবহার করা হয়। Razor সিম্পল, ক্লিন এবং ডাইনামিক HTML তৈরির জন্য ব্যবহৃত একটি টেমপ্লেটিং ভাষা। এটি C# কোডকে HTML কোডের মধ্যে একীভূত করার জন্য ব্যবহৃত হয় এবং ব্যবহারকারীর ইন্টারফেসের জন্য ডাইনামিক কন্টেন্ট রেন্ডার করতে সাহায্য করে।
Razor সিএসএস, জাভাস্ক্রিপ্ট বা HTML এর সঙ্গে C# কোডকে একত্রিত করার জন্য এক সহজ এবং কার্যকরী উপায় প্রদান করে। Razor ব্যবহার করার মাধ্যমে আপনি কার্যকরভাবে ভিউগুলিতে ডাইনামিক ডেটা এবং লজিক প্রক্রিয়াগুলি প্রয়োগ করতে পারেন।
Razor সিম্পল এবং স্বজ্ঞাত সিনট্যাক্স ব্যবহার করে C# কোড ইনজেক্ট করে HTML এ। Razor সিনট্যাক্সে @ চিহ্ন ব্যবহার করা হয় C# কোডের সঙ্গে HTML কোড মিশ্রিত করতে।
Razor সিনট্যাক্সে C# কোডের জন্য @ চিহ্ন ব্যবহার করা হয়, যা HTML এ কোডের রেন্ডারিংকে অনুমতি দেয়। যেমন:
<h1>Hello, @Model.Name!</h1>
এখানে, @Model.Name C# কোড যা Model
অবজেক্টের Name প্রপার্টি দেখায়।
Razor এ আপনি HTML এর মধ্যে C# এক্সপ্রেশনও ব্যবহার করতে পারেন। @ চিহ্ন দিয়ে C# কোড ব্লক শুরু করা হয়। যেমন:
<p>Current Date: @DateTime.Now</p>
এখানে, Razor @DateTime.Now ব্যবহার করে বর্তমান তারিখ এবং সময় প্রদর্শন করবে।
Razor এ C# এর if-else কন্ডিশনাল স্টেটমেন্ট ব্যবহার করা যায়:
@if (Model.IsLoggedIn)
{
<p>Welcome back, @Model.UserName!</p>
}
else
{
<p>Please log in to continue.</p>
}
এখানে, if-else কন্ডিশন ব্যবহার করে লগইন স্ট্যাটাসের ওপর ভিত্তি করে আলাদা মেসেজ দেখানো হচ্ছে।
Razor এ C# এর for, foreach বা while লুপ ব্যবহার করা যায় ডাইনামিক ডেটা রেন্ডার করার জন্য। যেমন:
<ul>
@foreach(var item in Model.Items)
{
<li>@item.Name</li>
}
</ul>
এখানে @foreach ব্যবহার করে Model.Items
লিস্টের প্রতিটি আইটেমের নাম একটি <li>
ট্যাগের মধ্যে প্রদর্শন করা হচ্ছে।
Razor এ @{ } সিঙ্কট্যাক্স ব্যবহার করে আপনি একাধিক C# কোড স্টেটমেন্ট একত্রিত করতে পারেন:
@{
var greeting = "Hello, " + Model.UserName;
}
<p>@greeting</p>
এখানে @{ } ব্যবহার করে greeting
ভেরিয়েবলটি ডিফাইন করা হয়েছে এবং তারপর তা HTML পেজে রেন্ডার করা হয়েছে।
Razor এ C# ফাংশন বা মেথডও কল করা যায়। যেমন:
<p>Sum: @Add(5, 10)</p>
@functions {
public int Add(int a, int b)
{
return a + b;
}
}
এখানে @Add(5, 10) ব্যবহার করে একটি কাস্টম Add মেথড কল করা হয়েছে, যেটি দুটি সংখ্যার যোগফল প্রদান করবে।
Razor সিনট্যাক্স প্রজেক্টের Views ফোল্ডারে .cshtml ফাইল হিসেবে ব্যবহার করা হয়। ASP.Net Core MVC অ্যাপ্লিকেশন বা ASP.Net MVC অ্যাপ্লিকেশন তৈরি করার সময় এই Razor টেমপ্লেটগুলি তৈরি এবং ব্যবহৃত হয়।
Razor ভিউ তে আপনি Model অবজেক্টের ডেটা রেন্ডার করতে পারেন। Model সাধারণত Controller থেকে ভিউতে পাস করা হয়।
@model YourNamespace.Models.Product
<h1>@Model.Name</h1>
<p>@Model.Description</p>
<p>Price: @Model.Price</p>
এখানে, @Model দিয়ে Product মডেলের ডেটা ভিউতে রেন্ডার হচ্ছে।
Razor টেমপ্লেটে Partial Views ব্যবহার করা যায়, যেখানে নির্দিষ্ট অংশের HTML বা C# কোড অন্য একটি ভিউ ফাইল থেকে রেন্ডার করা হয়। যেমন:
@Html.Partial("_ProductList", Model)
এখানে _ProductList হলো একটি Partial View যা নির্দিষ্ট ডেটা রেন্ডার করতে সাহায্য করবে।
Razor স্বয়ংক্রিয়ভাবে HTML encoding ব্যবহার করে আক্রমণ থেকে রক্ষা করে, অর্থাৎ আপনি যদি HTML বা JavaScript ইনপুট গ্রহণ করেন তবে এটি স্বয়ংক্রিয়ভাবে সেগুলিকে সঠিকভাবে এনকোড করে যা Cross-Site Scripting (XSS) আক্রমণ থেকে সুরক্ষা দেয়।
উদাহরণ:
<p>@Model.UserInput</p>
এখানে @Model.UserInput ইনপুটটিকে নিরাপদভাবে HTML তে রেন্ডার করবে।
Razor সিনট্যাক্স ASP.Net MVC এবং ASP.Net Core অ্যাপ্লিকেশনগুলিতে ডাইনামিক HTML পেজ তৈরির জন্য একটি শক্তিশালী টুল। এটি HTML এবং C# কোডের মিশ্রণ সম্ভব করে, যা ডেভেলপারদের ডাইনামিক কন্টেন্ট, লজিক এবং ভিউ তৈরি করার সুবিধা দেয়। Razor সিনট্যাক্স সহজ, কার্যকর এবং ব্যবহারকারীকে একত্রিত HTML এবং কোড ব্যবহারের জন্য নির্ভরযোগ্য একটি উপায় প্রদান করে।
Read more