Route در MVC

4/6/2017 MVC
1394

مباحث اولیه route در  بسیاری از کلاسهای MVC و یا کتابها توضیح داده شده است ، اولین روت تعریف شده که در پوشه App_Start و در کلاس RouteConfig.cs  قرار گرفته است بدین صورت است 

 routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new[] { "NewSunn.Controllers" }
            );

نام آن Default  در نظر گرفته شده و پارمتر های url  به صورت Controller/ action/ id  در نظر گرفته شده است در قسمت تعریف پیشفرض ها نیز Id  به صورت اختیاری در نظر گرفته شده است .

قسمت مربوط به namespaces  برای این است که ما Area  به سیستم اضافه کرده ایم و دو اکشن و ویوو  هم نام در پروژه، یکی در روت و یکی در قسمت Area  در نظر گرفته شده و برای عدم ادغام ، قسمت namespaces  اضافه شده است.

 

اما انچه یاد میگیرم این است ما برای رفتن به قسمت "درباره ما " چنین ادرسی  "localhost:{poernumber{Home/About" خواهیم داشت اما اگر بخواهیم فقط داشته باشیم about میتوانیم route  زیر را به روتهای پروژه اضافه کنیم (البته بالای روت پیشفرض پروژه) 

routes.MapRoute(
                name: "َabout",
                url: "about",
                defaults: new { controller = "Home", action = "about" },
}
               

و به صورت کلی چنین خواهد بود

routes.MapRoute(
                name: "َabout",
                url: "about",
                defaults: new { controller = "Home", action = "about" },
}
                
routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new[] { "NewSunn.Controllers" }
            );

حال با وارد کردن ادرس localhost:{portnumber}/about  وارد صفحه about شویم ، این مورد را میتواند در نمایش سبد خرید و یا... استفاده کنید

 مثلا site.com/checkout