Routing এবং URL Mapping হলো ASP.Net এ HTTP রিকোয়েস্টকে সঠিক কন্ট্রোলার বা অ্যাকশন এর সাথে সংযুক্ত করার প্রক্রিয়া। এটি একটি গুরুত্বপূর্ণ অংশ যা অ্যাপ্লিকেশন পরিচালনার জন্য উপযুক্ত রিকোয়েস্ট প্রক্রিয়াকরণ নিশ্চিত করে।
Routing হলো একটি কৌশল যা HTTP রিকোয়েস্ট URL এর ভিত্তিতে সঠিক কন্ট্রোলার এবং অ্যাকশন নির্বাচন করতে সাহায্য করে। ASP.Net MVC এবং ASP.Net Core এ, রাউটিং একটি URL pattern (যেমন /home/index
) ব্যবহার করে কন্ট্রোলারের নির্দিষ্ট অ্যাকশনে রিকোয়েস্টটি পাঠায়।
ASP.Net রাউটিং সিস্টেম, URL এবং Controller এর মধ্যে সম্পর্ক স্থাপন করে, যাতে যে রিকোয়েস্ট পাঠানো হচ্ছে সেটি সঠিকভাবে প্রক্রিয়া করা হয়।
ASP.Net MVC এ রাউটিংকে Route Table এর মাধ্যমে কনফিগার করা হয়। প্রাথমিকভাবে, RouteConfig.cs
ফাইলের মধ্যে রাউটিং কনফিগারেশন করা হয়।
RouteConfig.cs ফাইলের উদাহরণ:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Default route configuration
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
UrlParameter.Optional
: প্যারামিটার ঐচ্ছিক।এখানে, {controller}/{action}/{id}
হলো URL pattern, যার মাধ্যমে রিকোয়েস্ট কন্ট্রোলার এবং অ্যাকশন এর সাথে ম্যাপ হবে।
ASP.Net Core তে রাউটিং কনফিগারেশনটা একটু ভিন্ন। এখানে Startup.cs ফাইলে রাউটিং কনফিগার করা হয় এবং Middleware ব্যবহার করে রিকোয়েস্ট হ্যান্ডলিং করা হয়।
ASP.Net Core তে রাউটিং কনফিগার করতে, প্রথমে ConfigureServices মেথডে সার্ভিস অ্যাড করতে হয় এবং পরে Configure মেথডে রাউটিং মডিউল ব্যবহার করতে হয়।
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews(); // MVC এর জন্য সার্ভিস অ্যাড
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseRouting(); // রাউটিং মধ্য়স্থলে যুক্ত করা
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
{controller=Home}/{action=Index}/{id?}
হলো রাউটিং প্যাটার্ন, যেখানে controller
, action
এবং id
মান ম্যাপ হয়।URL Mapping হলো একটি কৌশল যা URL প্যাটার্নকে কোডের নির্দিষ্ট অংশ (যেমন কন্ট্রোলার এবং অ্যাকশন) এর সাথে সম্পর্কিত করে। এটি রাউটিংয়ের একটি অংশ এবং URL ম্যানিপুলেশন সিস্টেমকে সহজ করে।
/home/index
HomeController
Index
/product/details/5
ProductController
Details
5
{controller}/{action}/{id?}
, যেখানে id
ঐচ্ছিক।{category}/{id}
।ASP.Net এ Route Constraints ব্যবহার করে আপনি URL প্যারামিটারগুলোর জন্য নির্দিষ্ট শর্ত আরোপ করতে পারেন। এটি রাউটিং সিস্টেমে আরও সুনির্দিষ্ট নিয়ন্ত্রণ প্রদান করে।
routes.MapRoute(
name: "ProductDetails",
url: "product/{id}",
defaults: new { controller = "Product", action = "Details" },
constraints: new { id = @"\d+" } // এখানে id শুধুমাত্র ডিজিট হতে পারে
);
এখানে constraints
ব্যবহার করে id
প্যারামিটার শুধুমাত্র ডিজিট হতে হবে (যেমন product/123
ঠিক থাকবে, কিন্তু product/abc
হবে না)।
ASP.Net MVC বা Core এ আপনি Areas ব্যবহার করে বড় অ্যাপ্লিকেশনগুলো মডুলার করে সাজাতে পারেন। এর মাধ্যমে একটি অ্যাপ্লিকেশনের ভিন্ন ভিন্ন সেকশন বা মডিউলকে আলাদা রাউটিং প্যাটার্নে ভাগ করা যায়।
public class AreaRegistration : AreaRegistration
{
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Area_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
);
}
}
এখানে Admin এর জন্য আলাদা রাউটিং তৈরি করা হয়েছে।
Read more