Action Results & Rendering Views – Asp.Net Core

Action Result

MVC এর Controller এ এক বা একাধিক Actions থাকতে পারে যা বিভিন্ন রকম Results রিটার্ন (return) করবে। যেমনঃ আপনি Json, JavaScript, View, Empty result ইত্যাদি return করতে চাচ্ছেন।

Action কি?

Controller এর method যা incoming request হ্যান্ডেল করবে। Controller এ এক বা একাধিক actions/methods থাকতে পারে।

Action Results যে কোন Class যা IActionResult  Interface কে implement করবে। এসকল Action Results এর base Class হল ActionResult class। Controllers এর Actions এর ফলাফল হিসেবে একটা ক্লায়েন্ট (Client) যে কাজগুলা করবে সেটাই হচ্ছে Action Result classes।

কিছু Action Results

Action ResultHelper MethodDescription
ViewResultViewওয়েব পেজ হিসাবে View generate করবে
JsonResultJsonJson object রিটার্ন করবে

এই রকম আরো আছে – PartialViewResult, RedirectResult, FileResult ইত্যাদি।

Rendering View

MVC framework এর html ক্রিয়েট করার জন্য Asp.net Core mvc এর Razor View engine ব্যবহার করতে হবে।

এই engine ব্যবহার করার জন্য একটি Controller Action, ViewResult মেথড প্রডিউস করবে যা IActionResult কে implement করবে। ViewResult নির্দিষ্ট Razor View এর name নিতে পারবে মানে মেথডটি প্যারামিটার হিসাবে Razor View এর নাম নিবে। যখন MVC framework দেখবে যে Controller টি একটি ViewResult প্রডিউস করতে চাছে তখন View (folder যা ফাইল সিস্টেম এ আছে) এ ঐ নামের View টি খুঁজে execute করে HTML হিসাবে client এর কাছে পাঠাবে।

একটি Empty project নেই। তারপর MVC, Routing middleware configure করি।


app.UseMvc(routes =>
        {
            routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
        });

তারপর Model, Controller folder তৈরি করে Person.cs (Model)এবং HomeController.cs(Controller) add করি।

Person.cs

namespace last.Models
{
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

HomeController.cs

using Microsoft.AspNetCore.Mvc;
using last.Models;
namespace last.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            var model = new Person {Id = 1, Name = "who am i"};
            return View();
        }
    }
}

রান করলে DeveloperExceptionPage এ “Index” not found দেখাবে।

MVC ফ্রেমওয়ার্ক /Views/Home/Index.cshtml ফাইল খুজছে। মানে যে View টি Client এর কাছে যাবে। Views folder এ গিয়ে Home folder তৈরি করি। তারপর Index.cshtml ফাইল create করতে হবে। Html render করার জন্য ফাইলে <h2>Welcome</h2> লিখুন। তারপর রান করলে প্রত্যাশিত ফলাফল পাওয়া যাবে।

আমার বোঝায় ভুল হতে পারে। ভুল হলে জানাবেন। ঠিক ভাবে বুঝাতে পারিনি। ক্ষমা করবেন।

Sources:

ফেসবুক এ শেয়ার করুন

Leave a Reply

Your email address will not be published. Required fields are marked *