Коды маршрутизации можно найти в методе RegisterRoutes в файле Global.asax нашего проекта.
Я вижу cookie уже в методе RegisterRoutes.
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults);
Используя метод MapRoute выше, мы определили новый маршрут.
Образец;
public class HaberController : Controller
{
public ActionResult Listele()
{
// Listing codes will be written
return View("Listele");
}
public ActionResult Detay(string HaberId)
{
// Detail codes will be written
return View("Detay");
}
}
Переходим к нашему файлу Global.asax и редактируем его следующим образом.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"HaberListeleme",
"Haber",
new { controller = "Haber", action = "Listele" }
);
routes.MapRoute(
"HaberDetay",
"Haber/{id}",
new { controller = "Haber", action = "Detay" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
Если мы сделаем маршрутизацию следующим образом:
routes.MapRoute(
"HaberDetay",
"Haber/{*Id}",
new { controller = "Haber", action = "Detay" }
);
Поэтому, если мы напишем *, поместив символ рядом с именем нашего параметра, он будет отправлен соответствующему параметру метода Detail в Controller независимо от того, что он говорит после вкладки News / url.
Например:
http://www.doguhanaydeniz.com/Haber/Turkiye/Guncel/34389
Если URL запрашивается как Турция / текущий / 34389 будет отправлен в качестве параметра.