রেজার পেজ (Razor Pages)

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core)
224
224

ASP.NET Core-এর একটি শক্তিশালী ফিচার হলো Razor Pages, যা মডেল-ভিউ-কন্ট্রোলার (MVC) আর্কিটেকচারের উপর ভিত্তি করে কাজ করে, তবে এটি বেশি সহজ এবং কোডের পরিস্কারতা উন্নত করে। Razor Pages একটি পেজ-ভিত্তিক প্রোগ্রামিং মডেল, যেখানে প্রতিটি পেজ নিজস্ব Controller এবং View হিসেবে কাজ করে। এটি মূলত ছোট এবং মাঝারি আকারের অ্যাপ্লিকেশনগুলির জন্য উপযোগী, যেখানে প্রজেক্টের স্ট্রাকচার সরল এবং সহজ রাখার প্রয়োজন হয়।


Razor Pages এর পরিচিতি

Razor Pages হল ASP.NET Core-এ MVC (Model-View-Controller) আর্কিটেকচারের একটি সরলীকৃত সংস্করণ। এখানে কোড এবং UI (User Interface) একসাথে থাকে, যা অ্যাপ্লিকেশনের একটি নির্দিষ্ট পেজের জন্য কাজ করে। Razor Pages পেজ ভিত্তিক প্রোগ্রামিং মডেল সরবরাহ করে, যেখানে URL মডেলটি পেজের সাথে সরাসরি যুক্ত থাকে এবং Page Model (একটি C# ক্লাস) পেজের সাথে সম্পর্কিত লজিক কন্ট্রোল করে।


Razor Pages এর মূল বৈশিষ্ট্যসমূহ

  • এটি পেজ-ভিত্তিক মডেল: প্রতিটি পেজ একটি .cshtml ফাইল এবং তার সাথে একটি PageModel ক্লাস থাকে। এতে ডাটা এবং UI একত্রে সংযুক্ত থাকে।
  • কমপ্যাক্ট এবং কোড পরিস্কার: MVC আর্কিটেকচারের চেয়ে Razor Pages কমপ্যাক্ট এবং কোডের পরিমাণ কম রাখে।
  • ডাটাবাইন্ডিং: Razor Pages ডাটা বাইন্ডিং সহজ করে, কারণ এই পেজের জন্য একক ক্লাস পেজের মডেল এবং কোড আর্গুমেন্টস নিয়ে কাজ করে।
  • মৌলিক HTTP রিকোয়েস্টস: Razor Pages কেবলমাত্র HTTP রিকোয়েস্ট (GET, POST, PUT ইত্যাদি) সম্পাদন করার জন্য তৈরি করা হয়, যা কোড রিডেবিলিটি উন্নত করে।
  • শক্তিশালী এবং স্কেলেবল: Razor Pages খুবই শক্তিশালী এবং বড় অ্যাপ্লিকেশনেও সহজে ব্যবহার করা যায়।

Razor Pages এর কাজ করার ধারণা

Razor Pages কাজ করে একটি .cshtml ফাইলের মাধ্যমে, যা একটি HTML পেজের মতো কাজ করে, এবং একটি C# ক্লাস ফাইলের মাধ্যমে যা পেজের লজিক এবং ডেটা পরিচালনা করে।

.cshtml ফাইল

.cshtml ফাইল হলো Razor Views যেখানে HTML এবং C# কোড একসাথে থাকে। এটি View হিসেবে কাজ করে।

PageModel ক্লাস

এটি একটি C# ক্লাস যা পেজের মডেল এবং লজিক রক্ষা করে। এই ক্লাসটি পেজের ডেটা এবং রিকোয়েস্ট হ্যান্ডলিং পরিচালনা করে।


Razor Pages তৈরি করা

Razor Page তৈরি করার জন্য প্রথমে প্রজেক্ট তৈরি করুন:

  1. Visual Studio ব্যবহার করে নতুন ASP.NET Core Web Application তৈরি করুন।
  2. Razor Pages টেমপ্লেট নির্বাচন করুন এবং প্রজেক্টটি তৈরি করুন।

Razor Page ফাইল স্ট্রাকচার

Razor Pages-এ সাধারণত ফাইল স্ট্রাকচার নিচের মতো হয়:

/Pages
   /Home
      Index.cshtml
      Index.cshtml.cs (PageModel)

এখানে:

  • Index.cshtml: এই ফাইলটি হল পেজের ভিউ যেখানে HTML এবং Razor সিনট্যাক্স থাকে।
  • Index.cshtml.cs: এই ফাইলটি PageModel ক্লাস, যা পেজের লজিক এবং ডেটা সংরক্ষণ করে।

Razor Pages তৈরি করা এবং ব্যবহার

Razor Page তৈরি করা:

  1. .cshtml ফাইল তৈরি করুন:

    @page
    <h1>Welcome to Razor Pages</h1>
    <p>Your message is: @Model.Message</p>
    
  2. PageModel ক্লাস তৈরি করুন: Razor Page-এর জন্য একটি C# ক্লাস তৈরি করুন যা PageModel ক্লাস থেকে ইনহেরিট করবে:

    using Microsoft.AspNetCore.Mvc.RazorPages;
    
    public class IndexModel : PageModel
    {
        public string Message { get; set; }
    
        public void OnGet()
        {
            Message = "Hello from Razor Pages!";
        }
    }
    

Razor Page রান করা:

এই পেজটি চালু করার জন্য, Visual Studio থেকে F5 চাপুন বা dotnet run কমান্ড দিয়ে অ্যাপ্লিকেশনটি রান করুন। ব্রাউজারে গিয়ে পেজ দেখতে পাবেন।


Razor Pages এবং ফর্ম হ্যান্ডলিং

Razor Pages এ ফর্ম হ্যান্ডলিং খুবই সহজ। আপনি OnPost মেথড ব্যবহার করে পেজের ফর্ম ডাটা প্রসেস করতে পারেন।

ফর্ম তৈরি করা:

@page
<form method="post">
    <input type="text" asp-for="Name" />
    <button type="submit">Submit</button>
</form>

<p>Your name is: @Model.Name</p>

PageModel ক্লাসে ফর্ম হ্যান্ডলিং:

public class IndexModel : PageModel
{
    [BindProperty]
    public string Name { get; set; }

    public void OnPost()
    {
        // OnPost will be invoked when the form is submitted
    }
}

এখানে, OnPost() মেথডটি ফর্ম ডেটা প্রসেস করে এবং Name প্রপার্টি পেজে পাঠিয়ে দেয়।


Razor Pages-এর সুবিধা

  • সহজ এবং দ্রুত: Razor Pages সহজ এবং দ্রুত কোড লিখতে সহায়ক, কারণ এটি স্বয়ংক্রিয়ভাবে ডেটা বাইন্ডিং, ফর্ম প্রসেসিং এবং রাউটিং পরিচালনা করে।
  • ক্লিন এবং পরিষ্কার কোড: Razor Pages কোডিং সহজ এবং পরিষ্কার রাখে, কারণ এতে অতিরিক্ত Controller এবং View ফাইল তৈরি করার প্রয়োজন হয় না।
  • উন্নত পারফরম্যান্স: Razor Pages MVC এর তুলনায় আরও ভাল পারফরম্যান্স প্রদান করে, কারণ এতে ডেটা এবং লজিক এক জায়গায় থাকে।

Razor Pages একটি শক্তিশালী এবং সহজ মডেল ASP.NET Core অ্যাপ্লিকেশন তৈরি করতে, যেখানে ছোট এবং মাঝারি আকারের ওয়েব অ্যাপ্লিকেশন তৈরি সহজ হয়। Razor সিনট্যাক্স এবং PageModel ক্লাসের সমন্বয় একে অত্যন্ত কার্যকর এবং ব্যবহারকারী বান্ধব করে তোলে।

common.content_added_by

Razor পেজের পরিচিতি

223
223

Razor Pages হলো ASP.NET Core-এ একটি পেজ-বেসড প্রোগ্রামিং মডেল, যা MVC (Model-View-Controller) আর্কিটেকচারের একটি সহজ এবং নির্দিষ্ট বিকল্প। Razor Pages মূলত ডেভেলপারদের জন্য একটি সহজ, পরিষ্কার, এবং দ্রুত উপায়ে ওয়েব অ্যাপ্লিকেশন তৈরি করার সুযোগ প্রদান করে। এটি বিশেষভাবে সেই অ্যাপ্লিকেশনগুলির জন্য উপযোগী যেখানে একক পেজ বা ছোট অ্যাপ্লিকেশন তৈরি করা হয়।


Razor পেজের বৈশিষ্ট্য

  • পেজ-বেসড প্রোগ্রামিং মডেল: Razor Pages পেজ-ভিত্তিক এবং সহজ মডেল অনুসরণ করে। এতে কন্ট্রোলার এবং ভিউ পৃথক করা হয় না, বরং একক পেজের মধ্যে মডেল এবং ভিউ একত্রিত থাকে।
  • এটি MVC-এর সাথে তুলনা করা যায়: Razor Pages, MVC-র মতো, মডেল, ভিউ এবং কন্ট্রোলারের ব্যবস্থাপনা দেয়, তবে এতে কন্ট্রোলারটি আলাদা থাকে না। কন্ট্রোলারের কোড সাধারণত পেজের সাথে সংযুক্ত থাকে।
  • উদ্দেশ্য: Razor Pages প্রাথমিকভাবে সেই অ্যাপ্লিকেশনের জন্য ডিজাইন করা হয়েছে যেখানে অ্যাকশন বা কন্ট্রোলারগুলোর প্রয়োজন কম এবং পেজের উপর ভিত্তি করে প্রোগ্রামিং করা যেতে পারে।
  • সম্পূর্ণ ফিচার সমর্থন: Razor Pages-এ সব ধরনের ASP.NET Core ফিচার (যেমন: Authentication, Authorization, Dependency Injection) সমর্থিত এবং এটি খুব সহজেই কনফিগার করা যায়।

Razor পেজের কাজের ধরন

Razor Pages অ্যাপ্লিকেশনের প্রতিটি পেজ একটি PageModel (C# ক্লাস) এবং Razor View (HTML এবং Razor সিনট্যাক্স) দ্বারা প্রতিনিধিত্ব করা হয়। এর মধ্যে, PageModel পেজের লজিক এবং ডেটা পরিচালনা করে, আর Razor View পেজের ইউজার ইন্টারফেস উপস্থাপন করে।

PageModel

PageModel একটি C# ক্লাস যা Razor পেজের ডেটা এবং লজিক ধারণ করে। এটি পেজের সাথে সম্পর্কিত সমস্ত কার্যকলাপ, যেমন ডেটা ফেচিং, ফর্ম সাবমিশন, অথবা পেজের রেসপন্স প্রস্তুত করা, পরিচালনা করে।

Razor View

Razor View হলো একটি HTML ফাইল যেখানে Razor সিনট্যাক্স ব্যবহৃত হয়। এটি ডাইনামিক কন্টেন্ট সহ HTML উপাদান তৈরি করতে ব্যবহার করা হয়। Razor সিনট্যাক্স C# কোড এবং HTML কোড একত্রিত করে কাজ করে।


Razor পেজের গঠন

একটি সাধারণ Razor Page অ্যাপ্লিকেশন দুটি ফাইলের সমন্বয়ে তৈরি হয়:

  1. PageModel.cs: এটি C# ক্লাস ফাইল, যা পেজের লজিক এবং ডেটা নিয়ন্ত্রণ করে।
  2. Page.cshtml: এটি Razor View ফাইল, যা HTML এবং Razor সিনট্যাক্স দিয়ে ইউজার ইন্টারফেস তৈরি করে।

এই দুটি ফাইল একই নামের অধীনে একত্রিত হয় এবং একই পেজের অংশ হিসেবে কাজ করে। উদাহরণস্বরূপ, যদি আপনার Razor Page এর নাম About হয়, তাহলে ফাইল দুটি হবে:

  • About.cshtml (Razor View)
  • About.cshtml.cs (PageModel)

Razor পেজের সুবিধাসমূহ

  • সহজতা: Razor Pages সহজ এবং পরিষ্কার উপায়ে ওয়েব পেজ তৈরি করার জন্য একটি সুবিধাজনক পদ্ধতি প্রদান করে।
  • কন্ট্রোলার ছাড়াই সহজ ডেটা হ্যান্ডলিং: Razor Pages-এ ডেটা হ্যান্ডলিং কন্ট্রোলার ছাড়াই সহজে করা যায়, কারণ সব কোড একত্রিত থাকে।
  • আরও কার্যকরী ও কোড কমপ্লেক্সিটি কমানো: Razor Pages মডেল ও ভিউকে একত্রিত করার মাধ্যমে কোড কমপ্লেক্সিটি কমায় এবং ডেভেলপমেন্টের গতি বাড়ায়।
  • ভাল পারফরম্যান্স: Razor Pages একটি সিম্পল অ্যাপ্লিকেশন স্ট্রাকচার প্রদান করে যা সহজেই পারফরম্যান্স অপটিমাইজেশনের জন্য উপযুক্ত।

Razor পেজ ব্যবহার করার উদাহরণ

Razor পেজ তৈরি করা খুবই সহজ। নিচে একটি উদাহরণ দেয়া হলো:

PageModel (C#)

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class AboutModel : PageModel
{
    public string Message { get; set; }

    public void OnGet()
    {
        Message = "This is the About page!";
    }
}

Razor View (HTML)

@page
@model AboutModel

<!DOCTYPE html>
<html>
<head>
    <title>About Page</title>
</head>
<body>
    <h1>@Model.Message</h1>
</body>
</html>

এখানে, AboutModel ক্লাসটি OnGet মেথডের মাধ্যমে পেজের ডেটা প্রদান করছে এবং Razor View Message প্রপার্টি রেন্ডার করছে।


Razor পেজ কখন ব্যবহার করবেন

  • ছোট অ্যাপ্লিকেশন: Razor Pages ছোট অ্যাপ্লিকেশন, যেমন একক পেজ ওয়েবসাইট বা সিম্পল ব্লগ অ্যাপ্লিকেশনের জন্য আদর্শ।
  • সিম্পল ফর্ম হ্যান্ডলিং: যখন আপনি সহজ ফর্ম সাবমিশন এবং ডেটা প্রসেসিং করতে চান।
  • কমপ্লেক্স কন্ট্রোলারের প্রয়োজন নেই: যদি আপনার অ্যাপ্লিকেশনটি বেশি কন্ট্রোলারের প্রয়োজন না থাকে এবং সরাসরি পেজ ভিত্তিক ডেভেলপমেন্ট প্রাধান্য দেয়।

Razor Pages ASP.NET Core-এ একটি শক্তিশালী এবং কার্যকরী পেজ-বেসড ডেভেলপমেন্ট মডেল, যা কোডের মেইনটেনেবিলিটি এবং কার্যকারিতা বাড়াতে সাহায্য করে। এটি প্রাথমিকভাবে ছোট বা মধ্যম আকারের অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য উপযুক্ত, যেখানে কমপ্লেক্স কন্ট্রোলার বা মডেল ভিউ কন্ট্রোলার (MVC) আর্কিটেকচারের প্রয়োজন হয় না।

common.content_added_by

Razor পেজ তৈরি করা এবং ব্যবহার

275
275

Razor Pages হলো ASP.NET Core এর একটি পেজ-বেজড প্রোগ্রামিং মডেল, যা সাধারণ ওয়েব অ্যাপ্লিকেশন এবং UI ফোকাসড অ্যাপ্লিকেশন ডেভেলপমেন্টকে সহজ করে। এটি একটি সহজ এবং কার্যকর পদ্ধতিতে UI তৈরির জন্য Model, View এবং Controller-কে একত্রিত করে। Razor Pages বিশেষভাবে ছোট বা মডিউলার অ্যাপ্লিকেশন তৈরির জন্য উপযোগী।


Razor পেজের বৈশিষ্ট্য

  • পেজ-কেন্দ্রিক অ্যাপ্রোচ: প্রতিটি পেজ একটি মডেল (Page Model) এর সঙ্গে যুক্ত থাকে, যা পেজটির কোডবিহাইন্ড ফাইল হিসেবে কাজ করে।
  • সরলতা: ছোট এবং নির্দিষ্ট ফিচারগুলোর জন্য এটি MVC আর্কিটেকচারের তুলনায় সহজ এবং দ্রুত।
  • ইন্টিগ্রেটেড ফাইল স্ট্রাকচার: Razor পেজের View এবং Logic একত্রিত থাকে, যা কোড মেইনটেন্যান্স সহজ করে।
  • ডেটা বাইন্ডিং: Razor পেজ সরাসরি ডেটা বাইন্ডিং সাপোর্ট করে, যা UI এবং ডেটার মধ্যে সমন্বয় সহজ করে তোলে।

Razor পেজ তৈরি করা

নতুন Razor পেজ প্রজেক্ট তৈরি

Visual Studio ব্যবহার করে

  • Create a new project নির্বাচন করুন এবং ASP.NET Core Web Application টেমপ্লেট নির্বাচন করুন।
  • প্রজেক্ট নাম এবং লোকেশন নির্বাচন করুন।
  • Razor Pages টেমপ্লেট নির্বাচন করুন এবং প্রজেক্ট তৈরি করুন।

Command Line ব্যবহার করে

  • নতুন Razor পেজ অ্যাপ তৈরি করতে নিচের কমান্ড ব্যবহার করুন:

    dotnet new razor -n RazorPagesApp
    

    (এখানে RazorPagesApp হলো অ্যাপের নাম।)

  • প্রজেক্ট ফোল্ডারে যান এবং অ্যাপ চালু করতে:

    cd RazorPagesApp
    dotnet run
    

Razor পেজ যুক্ত করা

প্রজেক্ট তৈরি করার পর, নতুন Razor পেজ যুক্ত করতে নিচের ধাপগুলো অনুসরণ করুন।

Visual Studio-তে

  • Solution Explorer থেকে Pages ফোল্ডারে রাইট-ক্লিক করে Add > Razor Page নির্বাচন করুন।
  • পেজের নাম দিন (যেমন About) এবং ফাইল তৈরি করুন।

Manually যোগ করা

  • Pages ফোল্ডারে একটি নতুন .cshtml ফাইল তৈরি করুন (যেমন About.cshtml)।
  • একই নামে একটি .cshtml.cs ফাইল যুক্ত করুন, যা Page Model হিসেবে কাজ করবে।

Razor পেজের গঠন

Razor পেজ দুটি ফাইল নিয়ে গঠিত:

  1. .cshtml ফাইল: HTML এবং Razor সিনট্যাক্স ব্যবহার করে UI তৈরি করার জন্য।
  2. .cshtml.cs ফাইল: পেজের ব্যাক-এন্ড লজিক এবং ডেটা প্রসেসিং পরিচালনা করে।

উদাহরণস্বরূপ, একটি About পেজের গঠন:

About.cshtml:

@page
@model AboutModel
<!DOCTYPE html>
<html>
<head>
    <title>About Page</title>
</head>
<body>
    <h1>@Model.Message</h1>
</body>
</html>

About.cshtml.cs:

using Microsoft.AspNetCore.Mvc.RazorPages;

public class AboutModel : PageModel
{
    public string Message { get; set; }

    public void OnGet()
    {
        Message = "Welcome to the About Page!";
    }
}

Razor পেজে ফর্ম হ্যান্ডলিং

Razor পেজ সহজেই ফর্ম ডেটা প্রক্রিয়াকরণ করতে পারে। উদাহরণস্বরূপ:

Contact.cshtml:

@page
@model ContactModel
<!DOCTYPE html>
<html>
<head>
    <title>Contact Page</title>
</head>
<body>
    <form method="post">
        <label for="Name">Name:</label>
        <input type="text" id="Name" name="Name" />
        <button type="submit">Submit</button>
    </form>
    <p>@Model.Message</p>
</body>
</html>

Contact.cshtml.cs:

using Microsoft.AspNetCore.Mvc.RazorPages;

public class ContactModel : PageModel
{
    public string Message { get; set; }

    public void OnPost(string Name)
    {
        Message = $"Hello, {Name}!";
    }
}

Razor পেজ ব্যবহার

Razor পেজ অ্যাপ চালু করার পর, পেজগুলো অ্যাক্সেস করতে ব্রাউজারে সংশ্লিষ্ট URL লিখুন। উদাহরণস্বরূপ:

  • https://localhost:5001/About
  • https://localhost:5001/Contact

Razor পেজ একটি সরল ও কার্যকরী পদ্ধতি প্রদান করে ছোট ও নির্দিষ্ট অ্যাপ্লিকেশন তৈরির জন্য। এর সরল গঠন এবং ডেটা হ্যান্ডলিং ক্ষমতা ডেভেলপারদের কাজকে সহজ ও দ্রুততর করে তোলে।

common.content_added_by

Razor পেজে ফর্ম হ্যান্ডলিং

199
199

Razor পেজ (Razor Pages) হলো ASP.NET Core এর একটি মডেল, যা ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি সহজ এবং পরিষ্কার পদ্ধতি প্রদান করে। Razor পেজে ফর্ম হ্যান্ডলিং খুবই সহজ এবং কার্যকরী, যেখানে ব্যবহারকারীরা বিভিন্ন ইনপুট প্রদান করে এবং সেই ডেটা সার্ভারে প্রক্রিয়া করা হয়।


Razor পেজে ফর্ম হ্যান্ডলিং কীভাবে কাজ করে?

Razor পেজে ফর্ম হ্যান্ডলিংয়ের জন্য আপনাকে কিছু মৌলিক স্টেপ অনুসরণ করতে হবে, যেমন:

  1. HTML ফর্ম তৈরি করা
  2. মডেল তৈরি করা যা ডেটা বাইন্ডিংয়ের জন্য ব্যবহৃত হবে।
  3. OnPost মেথড ব্যবহার করে ফর্মের ডেটা প্রসেস করা।

Razor পেজে ফর্ম হ্যান্ডলিং উদাহরণ

এখানে একটি সাধারণ Razor পেজে ফর্ম হ্যান্ডলিংয়ের উদাহরণ দেওয়া হল, যেখানে একটি কনট্যাক্ট ফর্ম তৈরি করা হয়েছে। ফর্মটি ব্যবহারকারীর নাম এবং ইমেইল গ্রহণ করবে এবং পরবর্তীতে সেই ডেটা প্রদর্শন করবে।

1. 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>

2. Razor পেজ মডেল (Page Model) তৈরি করা

এখন, 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; }
    }
}

3. ডেটা বাইনডিং এবং ফর্ম সাবমিট

  • ContactForm ক্লাসটি ব্যবহারকারীর ইনপুট ডেটা (নাম এবং ইমেইল) ধারণ করবে।
  • OnPost() মেথডটি ফর্ম সাবমিট হলে চালু হবে। এখানে আমরা ফর্মের ডেটা প্রসেস করতে পারি, যেমন ডেটাবেজে সেভ করা বা ইমেইল পাঠানো।
  • @Model.Contact.Name এবং @Model.Contact.Email Razor পেজে ডেটা প্রদর্শন এবং ব্যবহার করার জন্য ব্যবহার করা হচ্ছে।
  • @Model.IsSubmitted এর মাধ্যমে আমরা ফর্মটি সফলভাবে সাবমিট হওয়ার পর একটি কনফার্মেশন মেসেজ প্রদর্শন করি।

Razor পেজে ফর্ম হ্যান্ডলিংয়ের অন্যান্য বৈশিষ্ট্য

  • ডেটা ভ্যালিডেশন: 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.content_added_by

Razor টেমপ্লেট সিনট্যাক্স এবং ডেটা বাইন্ডিং

196
196

Razor হলো ASP.NET Core এর একটি ভিউ ইঞ্জিন, যা HTML এবং C# কোডের সংমিশ্রণে ডাইনামিক ওয়েব পেজ তৈরি করতে ব্যবহৃত হয়। এটি সহজ এবং কার্যকর সিনট্যাক্সের মাধ্যমে ডেভেলপারদের জন্য কোড লিখা সহজ করে তোলে। Razor এর একটি প্রধান বৈশিষ্ট্য হলো ডেটা বাইন্ডিং, যা মডেল ডেটাকে ভিউতে প্রদর্শন করার জন্য ব্যবহৃত হয়।


Razor টেমপ্লেট সিনট্যাক্স

Razor কোড ব্লক

Razor টেমপ্লেটে C# কোড লেখার জন্য @ চিহ্ন ব্যবহার করা হয়। এটি HTML এর মধ্যে ডাইনামিক কন্টেন্ট যুক্ত করতে ব্যবহৃত হয়।

@{
    var message = "Welcome to Razor Syntax!";
}
<h1>@message</h1>

উপরের উদাহরণে @{} ব্লকের মধ্যে একটি C# ভ্যারিয়েবল ডিক্লেয়ার করা হয়েছে, যা HTML-এ @message দিয়ে প্রদর্শিত হয়েছে।

একক লাইন কোড

একটি সরল একক লাইনের জন্য @ চিহ্ন ব্যবহার করা হয়।

<p>The current year is @DateTime.Now.Year.</p>

লুপ এবং কন্ডিশনাল স্টেটমেন্ট

Razor সিনট্যাক্সের মাধ্যমে লুপ এবং কন্ডিশনাল লজিক সহজেই ইমপ্লিমেন্ট করা যায়।

<ul>
    @for (int i = 1; i <= 5; i++)
    {
        <li>Item @i</li>
    }
</ul>

@if (DateTime.Now.Hour < 12)
{
    <p>Good Morning!</p>
}
else
{
    <p>Good Afternoon!</p>
}

HTML এ কমেন্ট

Razor টেমপ্লেটে Razor কোডের জন্য @* *@ এবং HTML কোডের জন্য <!-- --> কমেন্ট স্টাইল ব্যবহার করা হয়।

@* This is a Razor comment *@
<!-- This is an HTML comment -->

Razor ডেটা বাইন্ডিং

মডেল থেকে ডেটা প্রদর্শন করা

Razor টেমপ্লেটে ডেটা বাইন্ডিংয়ের মাধ্যমে মডেল ডেটাকে ভিউতে ব্যবহার করা যায়।

উদাহরণ:

Model:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
}

Controller:

public IActionResult Index()
{
    var product = new Product
    {
        Name = "Laptop",
        Price = 999.99m
    };
    return View(product);
}

View (Index.cshtml):

@model Product

<h1>Product Details</h1>
<p>Name: @Model.Name</p>
<p>Price: $@Model.Price</p>

লিস্ট ডেটা প্রদর্শন করা

একাধিক ডেটা প্রদর্শনের জন্য foreach লুপ ব্যবহার করা হয়।

@model List<Product>

<h1>Product List</h1>
<ul>
    @foreach (var product in Model)
    {
        <li>@product.Name - $@product.Price</li>
    }
</ul>

টেমপ্লেট ফর্মের মাধ্যমে ডেটা গ্রহণ করা

Razor ডেটা বাইন্ডিং ফর্মের ইনপুট ডেটার সঙ্গে ইন্টিগ্রেট করা যায়।

<form method="post">
    <label>Name:</label>
    <input type="text" name="Name" />
    <br />
    <label>Price:</label>
    <input type="number" name="Price" />
    <br />
    <button type="submit">Submit</button>
</form>

Tag Helper এর মাধ্যমে ডেটা বাইন্ডিং

Tag Helper Razor ভিউতে HTML ট্যাগের ক্ষমতা বাড়ায়। উদাহরণস্বরূপ, ফর্মের জন্য:

<form asp-action="Save" asp-controller="Product">
    <label for="Name">Name:</label>
    <input asp-for="Name" class="form-control" />
    <label for="Price">Price:</label>
    <input asp-for="Price" class="form-control" />
    <button type="submit">Submit</button>
</form>

Razor এর কিছু গুরুত্বপূর্ণ সিনট্যাক্স

Partial Views

Razor এ Partial View ব্যবহার করে কোড পুনরায় ব্যবহারযোগ্য করা যায়।

@await Html.PartialAsync("_ProductPartial", Model)

Layout

Razor ভিউতে Layout ব্যবহার করে কনসিস্টেন্ট পেজ ডিজাইন বজায় রাখা যায়।

@{
    Layout = "_Layout";
}

Sections

Razor Sections ব্যবহার করে নির্দিষ্ট পেজের জন্য ডায়নামিক কনটেন্ট তৈরি করা যায়।

@section Scripts {
    <script src="custom.js"></script>
}

Razor টেমপ্লেট সিনট্যাক্স এবং ডেটা বাইন্ডিং ASP.NET Core অ্যাপ্লিকেশনের একটি মূল অংশ। এটি ডেভেলপারদের জন্য সহজ, দ্রুত এবং কার্যকর পদ্ধতিতে ডাইনামিক ওয়েব পেজ তৈরি করতে সহায়তা করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion