Routing (রাউটিং) – Asp.Net Core

Routing কী?

Routing সিস্টেম incoming HTTP request প্রসেস, এই সব request সঠিক Controller ও Action methods এর কাছে পাঠাতে এবং প্রসেস করার জন্য রেসপন্সিবল(responsible)। এছাড়াও View তে routes জেনারেট করতে ব্যবহার করা হয়, যা outgoing URLs।

সহজ কথায় বলতে গেলে Browser এ https://www.binary-geek.com/course/aspnetcore এই URL টি রিকুয়েস্ট করলে কোন class এর কোন method কিংবা Controller এর Action method কাজ করবে তা এই URL Routing এর মাধ্যমে করা যাবে।

Controller হল C# Class এবং Action Method হল ঐ class এর method (মেথড)

কোথায় Configure করতে হবে?

Routing Middleware টি কোন asp.net core project এর Startup.cs file এর Configure method টি তে setting up করতে হবে। Configure method এর দিকে লক্ষ্য করলে নিচের মত দেখা যাবে।

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

routes.MapRoute( ) মেথডটির ১ম Parameter টি হল route এর জন্য name. ২য Parameter টি হল একটি template যা MVC framework কে বলবে কিভাবে URL এর path সিলেক্ট করবে।

Route template টি /Home/Index/5 এই টাইপের url path ম্যাচ করবে। Routing template এ –

  • {controller=Home} এর মাধ্যমে Home কে default Controller হিসাব সেট করা হয়েছ। চাইলে {controller} এভাবেও হবে।
  • {action=Index} এর মাধ্যমে Index কে default action method হিসাব সেট করা হয়েছ। চাইলে {action} এভাবেও হবে।

এখন একটি class / Controller লিখি। নাম দিলাম HomeController। একটি method লিখি Index() নামে এবং BinaryGeek() নামে আরেকটি method লিখি।

namespace gh.Controllers
{
    public class HomeController
    {
        public string Index()
        {
            return "Hello from controller";
        }
        public string BinaryGeek()
        {
            return "Hello from Binary-Geek";
        }
    }
}

রান করলে “Hello from Controller” দেখা যাবে মানে return string টি দেখা যাবে।


যদি https://localhost:5001/home/index দিলে একই ফলাফল দেখাবে। এখন https://localhost:5001/home/binarygeek url টি দিলে “Hello from Binary-Geek” string টি return করবে। এটাকে বলা হয় Conventional Routing। আরেক ধরনের routing আছ সেটা হল Attribute routing।

References:

  • https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.2
  • https://www.tutorialspoint.com/asp.net_core/asp.net_core_routing.htm
  • https://www.c-sharpcorner.com/article/asp-net-core-2-0-mvc-routing/

Note: আমি নিজেও Beginner level এর। ভুল হলে ক্ষমা করবেন।


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

Leave a Reply

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