Razor পেজ (Razor Pages) হলো ASP.NET Core এর একটি মডেল, যা ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি সহজ এবং পরিষ্কার পদ্ধতি প্রদান করে। Razor পেজে ফর্ম হ্যান্ডলিং খুবই সহজ এবং কার্যকরী, যেখানে ব্যবহারকারীরা বিভিন্ন ইনপুট প্রদান করে এবং সেই ডেটা সার্ভারে প্রক্রিয়া করা হয়।
Razor পেজে ফর্ম হ্যান্ডলিংয়ের জন্য আপনাকে কিছু মৌলিক স্টেপ অনুসরণ করতে হবে, যেমন:
এখানে একটি সাধারণ Razor পেজে ফর্ম হ্যান্ডলিংয়ের উদাহরণ দেওয়া হল, যেখানে একটি কনট্যাক্ট ফর্ম তৈরি করা হয়েছে। ফর্মটি ব্যবহারকারীর নাম এবং ইমেইল গ্রহণ করবে এবং পরবর্তীতে সেই ডেটা প্রদর্শন করবে।
প্রথমে, Razor পেজ তৈরি করতে হবে। আমরা একটি Razor পেজ Contact.cshtml
এবং এর সাথে একটি Contact.cshtml.cs
পেজ মডেল তৈরি করব।
Contact.cshtml
(Razor পেজ)@page
@model RazorPagesExample.Pages.ContactModel
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Contact Form</title>
</head>
<body>
<h2>Contact Us</h2>
<form method="post">
<div>
<label for="Name">Name:</label>
<input type="text" id="Name" name="Name" value="@Model.Contact.Name" />
</div>
<div>
<label for="Email">Email:</label>
<input type="email" id="Email" name="Email" value="@Model.Contact.Email" />
</div>
<div>
<button type="submit">Submit</button>
</div>
</form>
@if (Model.IsSubmitted)
{
<div>
<h3>Thank you for contacting us, @Model.Contact.Name!</h3>
<p>We have received your message and will get back to you soon.</p>
</div>
}
</body>
</html>
এখন, ContactModel.cs
ফাইল তৈরি করতে হবে, যা Razor পেজের লজিক এবং ডেটা হ্যান্ডলিং করবে। এই মডেল ফাইলে আমরা ফর্মের ডেটা বাইনডিং এবং সাবমিট করার পরে সেটি প্রসেস করব।
Contact.cshtml.cs
(Page Model)using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace RazorPagesExample.Pages
{
public class ContactModel : PageModel
{
[BindProperty]
public ContactForm Contact { get; set; }
public bool IsSubmitted { get; set; }
public void OnGet()
{
// প্রাথমিকভাবে পেজ লোড হলে কোনো ডেটা প্রসেস করার প্রয়োজন নেই
}
public void OnPost()
{
if (ModelState.IsValid)
{
// ফর্ম সাবমিট হলে ডেটা প্রসেস করা হয়
IsSubmitted = true;
}
}
}
public class ContactForm
{
public string Name { get; set; }
public string Email { get; set; }
}
}
ContactForm
ক্লাসটি ব্যবহারকারীর ইনপুট ডেটা (নাম এবং ইমেইল) ধারণ করবে।OnPost()
মেথডটি ফর্ম সাবমিট হলে চালু হবে। এখানে আমরা ফর্মের ডেটা প্রসেস করতে পারি, যেমন ডেটাবেজে সেভ করা বা ইমেইল পাঠানো।@Model.Contact.Name
এবং @Model.Contact.Email
Razor পেজে ডেটা প্রদর্শন এবং ব্যবহার করার জন্য ব্যবহার করা হচ্ছে।@Model.IsSubmitted
এর মাধ্যমে আমরা ফর্মটি সফলভাবে সাবমিট হওয়ার পর একটি কনফার্মেশন মেসেজ প্রদর্শন করি।ডেটা ভ্যালিডেশন: Razor পেজে আপনি ডেটা ভ্যালিডেশন করতে পারেন, যেমন DataAnnotations
ব্যবহার করে। উদাহরণস্বরূপ, যদি ব্যবহারকারী ইমেইল ফিল্ডটি খালি রাখে তবে এটি ভ্যালিডেশন ত্রুটি দেখাবে।
উদাহরণ:
public class ContactForm
{
[Required(ErrorMessage = "Name is required")]
public string Name { get; set; }
[Required(ErrorMessage = "Email is required")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }
}
অ্যাসিনক্রোনাস (Async) ফর্ম হ্যান্ডলিং: আপনি ফর্ম সাবমিট করার সময় অ্যাসিনক্রোনাস মেথড ব্যবহার করতে পারেন। এটি বড় ফর্ম বা ডেটাবেস সেভ করার মতো কাজের জন্য উপকারী।
উদাহরণ:
public async Task<IActionResult> OnPostAsync()
{
if (ModelState.IsValid)
{
// অ্যাসিনক্রোনাস ডেটা প্রসেসিং
return RedirectToPage("Success");
}
return Page();
}
Razor পেজে ফর্ম হ্যান্ডলিং একটি সহজ এবং কার্যকরী প্রক্রিয়া। Razor পেজ আপনাকে HTML ফর্ম তৈরি এবং তার ডেটা সরাসরি মডেল ক্লাসের মাধ্যমে সার্ভারে প্রক্রিয়াকরণ করতে সাহায্য করে। ডেটা বাইনডিং, ভ্যালিডেশন এবং সাবমিট করার মাধ্যমে আপনি একটি উন্নত ফর্ম হ্যান্ডলিং সিস্টেম তৈরি করতে পারেন।
common.read_more