ASP.Net MVC এবং ASP.Net Core MVC অ্যাপ্লিকেশন তৈরি করার সময় Controller হলো এমন একটি গুরুত্বপূর্ণ উপাদান, যা HTTP অনুরোধকে গ্রহণ করে, প্রয়োজনীয় ডেটা প্রস্তুত করে এবং সেই ডেটাকে View এর মাধ্যমে ব্যবহারকারীর কাছে প্রদর্শন করে। কন্ট্রোলারের মাধ্যমে অ্যাপ্লিকেশনের লজিক এবং ইউজার ইন্টারঅ্যাকশন পরিচালনা করা হয়।
Controller হলো MVC (Model-View-Controller) আর্কিটেকচারের একটি অংশ যা ইউজারের অনুরোধের ভিত্তিতে Model থেকে ডেটা নিয়ে তা View এর মাধ্যমে প্রদর্শন করে। কন্ট্রোলার ক্লাসগুলির মধ্যে সাধারণত একাধিক অ্যাকশন মেথড থাকে, যা HTTP অনুরোধের জন্য রেসপন্স তৈরি করে।
HomeController.cs
।কন্ট্রোলার ক্লাসের ভিতরে নিচের মতো কোড লিখুন:
using Microsoft.AspNetCore.Mvc;
public class HomeController : Controller
{
// GET: /Home/
public IActionResult Index()
{
return View();
}
// GET: /Home/About
public IActionResult About()
{
return View();
}
// GET: /Home/Contact
public IActionResult Contact()
{
return View();
}
}
কন্ট্রোলার ক্লাসটির উপরে Controller ক্লাসের একটি ডেরিভেটিভ হওয়া উচিত, এবং প্রতিটি অ্যাকশন মেথডের মধ্যে সাধারণত IActionResult রিটার্ন টাইপ থাকে। নিচে একটি বেসিক কন্ট্রোলারের কোড দেখানো হলো:
using Microsoft.AspNetCore.Mvc;
public class HomeController : Controller
{
// Index Action
public IActionResult Index()
{
return View();
}
// About Action
public IActionResult About()
{
return View();
}
}
কন্ট্রোলারে সাধারণত HTTP এর বিভিন্ন মেথডের জন্য আলাদা অ্যাকশন মেথড থাকে। কিছু সাধারণ HTTP অ্যাকশন মেথড:
সাধারণত ভিউ রেন্ডার করার জন্য ব্যবহৃত হয়, যেমন একটি পেজ লোড করা।
public IActionResult Index()
{
return View();
}
ব্যবহারকারীর থেকে ডেটা গ্রহণ করার জন্য ব্যবহৃত হয়, যেমন ফর্ম সাবমিট।
[HttpPost]
public IActionResult SubmitForm(MyModel model)
{
if (ModelState.IsValid)
{
// ডেটা প্রক্রিয়া করুন
}
return View();
}
সাধারনত ডেটা আপডেট করার জন্য ব্যবহৃত হয়।
[HttpPut]
public IActionResult UpdateData(int id, MyModel model)
{
if (ModelState.IsValid)
{
// ডেটা আপডেট করুন
}
return RedirectToAction("Index");
}
ডেটা মুছতে ব্যবহৃত হয়।
[HttpDelete]
public IActionResult DeleteData(int id)
{
// ডেটা মুছুন
return RedirectToAction("Index");
}
ASP.Net Core MVC প্রজেক্টে কন্ট্রোলারের রাউটিং এবং কনফিগারেশন Startup.cs ফাইলে করা হয়। এই ফাইলে আপনি কন্ট্রোলারগুলির রাউটিং এবং অন্যান্য কনফিগারেশন সেটআপ করতে পারেন।
Startup.cs ফাইলের মধ্যে Configure মেথডে রাউটিং কনফিগার করা হয়। সাধারণত, UseEndpoints মেথডের মধ্যে কন্ট্রোলারের রাউটিং কনফিগার করা থাকে:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
এখানে, {controller=Home}
এবং {action=Index}
ডিফল্ট কন্ট্রোলার এবং অ্যাকশন সেট করে দিয়েছে। অর্থাৎ, /
URL এ যাওয়া হলে স্বয়ংক্রিয়ভাবে HomeController এর Index অ্যাকশন কল হবে।
আপনি কন্ট্রোলারের অ্যাকশনগুলির জন্য কাস্টম রাউটও সেট করতে পারেন:
[Route("products/{id}")]
public IActionResult ProductDetails(int id)
{
var product = _context.Products.Find(id);
return View(product);
}
এই কন্ট্রোলারটি /products/5
URL এ গিয়ে ProductDetails অ্যাকশন কল করবে।
কন্ট্রোলারের অ্যাকশন মেথডগুলি সাধারণত IActionResult রিটার্ন করে, তবে আপনি সরাসরি ViewResult, RedirectToActionResult, JsonResult ইত্যাদি রিটার্ন করতে পারেন।
public IActionResult Index()
{
return View();
}
public IActionResult RedirectToHome()
{
return RedirectToAction("Index", "Home");
}
public IActionResult GetJsonData()
{
var data = new { Name = "Product", Price = 100 };
return Json(data);
}
ASP.Net MVC বা ASP.Net Core MVC এ কন্ট্রোলার তৈরি এবং কনফিগারেশন হলো অ্যাপ্লিকেশনের কার্যকরী অংশ। কন্ট্রোলারের মাধ্যমে HTTP অনুরোধগুলির জন্য ডেটা প্রক্রিয়া এবং ভিউ রেন্ডার করা হয়। কন্ট্রোলারের মধ্যে বিভিন্ন অ্যাকশন মেথড থাকে যা HTTP এর বিভিন্ন মেথডের জন্য রেসপন্স তৈরি করে। কন্ট্রোলারের রাউটিং কনফিগারেশনের জন্য Startup.cs ফাইলের মধ্যে সেটআপ করা হয়।
Read more