অ্যাকশন মেথডস এবং Return Types

Web Development - এএসপি ডট (ASP.Net) - কন্ট্রোলার এবং অ্যাকশন মেথড |

ASP.Net MVC অ্যাপ্লিকেশনে, অ্যাকশন মেথডস (Action Methods) হল কন্ট্রোলারের সেই মেথডগুলো যা HTTP রিকোয়েস্টের জন্য সাড়া দেয়। এই মেথডগুলো ব্যবহারকারীর রিকোয়েস্টের উপর ভিত্তি করে ডেটা রিটার্ন করে এবং সাধারণত View অথবা Redirect বা JSON রিটার্ন করে।

এখানে অ্যাকশন মেথডস এবং তাদের বিভিন্ন Return Types নিয়ে বিস্তারিত আলোচনা করা হলো।


১. অ্যাকশন মেথডস (Action Methods)

অ্যাকশন মেথড একটি পাবলিক মেথড হিসেবে কন্ট্রোলার ক্লাসের মধ্যে ডিফাইন করা হয়। এই মেথডটি HTTP রিকোয়েস্টের প্রতি সাড়া প্রদান করে এবং সাধারণত View, Redirect, JSON, PartialView ইত্যাদি রিটার্ন করে।

উদাহরণ:

using Microsoft.AspNetCore.Mvc;

namespace MyFirstAspNetApp.Controllers
{
    public class HomeController : Controller
    {
        // Action Method: Returns a View
        public IActionResult Index()
        {
            return View();
        }
        
        // Action Method: Returns a Redirect
        public IActionResult RedirectToAbout()
        {
            return RedirectToAction("About");
        }
        
        // Action Method: Returns JSON Data
        public IActionResult GetJsonData()
        {
            var data = new { Name = "John", Age = 30 };
            return Json(data);
        }
    }
}

২. Return Types

অ্যাকশন মেথড বিভিন্ন ধরনের রিটার্ন টাইপ ব্যবহার করতে পারে, যা নিচে ব্যাখ্যা করা হলো:

১. ViewResult

  • ViewResult হলো সাধারণত View রিটার্ন করার জন্য ব্যবহৃত হয়। এটি HTML পেজ বা Razor view রেন্ডার করতে সাহায্য করে।
  • IActionResult এর একটি বিশেষ ধরন, যেটি View রিটার্ন করে।

উদাহরণ:

public IActionResult Index()
{
    return View(); // Renders the default view (Index.cshtml)
}

২. RedirectResult

  • RedirectResult ব্যবহার করে আপনি অন্য একটি অ্যাকশন অথবা URL এ রিডাইরেক্ট করতে পারেন।
  • সাধারণত RedirectToAction মেথডের মাধ্যমে RedirectResult রিটার্ন করা হয়।

উদাহরণ:

public IActionResult RedirectToAbout()
{
    return RedirectToAction("About"); // Redirects to the About action method
}

৩. JsonResult

  • JsonResult JSON ফরম্যাটে ডেটা রিটার্ন করার জন্য ব্যবহৃত হয়। এটি সাধারণত AJAX রিকোয়েস্টের জন্য ব্যবহৃত হয়।
  • এটি JSON ডেটা রিটার্ন করে, যা JavaScript এ প্রোসেস করা যায়।

উদাহরণ:

public IActionResult GetJsonData()
{
    var data = new { Name = "John", Age = 30 };
    return Json(data); // Returns JSON data
}

৪. PartialViewResult

  • PartialViewResult একটি পার্শ্বিক ভিউ (Partial View) রিটার্ন করে যা পূর্ণ পেজের অংশ হিসেবে রেন্ডার হয়। এটি সাধারণত ডায়নামিক কন্টেন্ট বা AJAX এর মাধ্যমে লোড করার জন্য ব্যবহৃত হয়।

উদাহরণ:

public IActionResult GetPartialView()
{
    return PartialView("_MyPartialView"); // Renders a partial view
}

৫. ContentResult

  • ContentResult কোনো কন্টেন্ট (যেমন plain text বা HTML) রিটার্ন করতে ব্যবহৃত হয়। এটি HTTP রেসপন্সে সরাসরি কন্টেন্ট সন্নিবেশ করে।

উদাহরণ:

public IActionResult GetContent()
{
    return Content("Hello, this is a plain text response."); // Returns plain text
}

৬. FileResult

  • FileResult ফাইল রিটার্ন করার জন্য ব্যবহৃত হয়, যেমন পিডিএফ, ইমেজ, অথবা ডাউনলোডযোগ্য ফাইল।

উদাহরণ:

public IActionResult DownloadFile()
{
    var filePath = "path/to/file.pdf";
    return File(filePath, "application/pdf", "downloadedfile.pdf"); // Returns a file for download
}

৩. ActionResult vs IActionResult

  • IActionResult একটি ইন্টারফেস, যা বিভিন্ন ধরনের রিটার্ন টাইপ (যেমন ViewResult, JsonResult, RedirectResult) ধারণ করতে পারে।
  • ActionResult একটি কনক্রিট ক্লাস যা IActionResult ইন্টারফেসকে বাস্তবায়ন করে। আপনি ActionResult বা IActionResult যেকোনো একটিকে রিটার্ন টাইপ হিসেবে ব্যবহার করতে পারেন।

উদাহরণ:

public IActionResult Index()
{
    return View(); // IActionResult type
}

public ActionResult About()
{
    return View(); // ActionResult type
}

৪. অ্যাকশন মেথডের উপর Attribute ব্যবহার

অ্যাকশন মেথডগুলিতে আপনি নির্দিষ্ট Attributes ব্যবহার করতে পারেন, যেমন [HttpGet], [HttpPost], [Route] ইত্যাদি।

উদাহরণ:

[HttpGet]
public IActionResult GetData()
{
    return Json(new { message = "This is a GET request" });
}

[HttpPost]
public IActionResult PostData([FromBody] MyModel model)
{
    return Json(new { message = "Data received", model });
}

এভাবে ASP.Net অ্যাপ্লিকেশনে বিভিন্ন ধরনের অ্যাকশন মেথডস এবং তাদের Return Types ব্যবহার করে আপনি প্রোজেক্টের কার্যকারিতা এবং পারফরম্যান্স কাস্টমাইজ করতে পারেন।

Content added By
Promotion