У меня проблема при попытке настроить маршрутизацию для работы с ASP.NET MVC 3.0. У меня объявлены следующие маршруты:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "RsvpForm", id = UrlParameter.Optional }
);
routes.MapRoute(
"TestRoute",
"{id}",
new { controller = "Product", action = "Index3", id = UrlParameter.Optional }
);
routes.MapRoute(
"TestRoute2",
"{action}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Когда я посещаю:
http://localhost
сайт работает правильно и, похоже, попадает в маршрут По умолчанию
.
Когда я посещаю:
http://localhost/1
, я получаю ошибку сервера 404:
в приложении '/'.
Ресурс не найден. Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, его имя было изменено или Временно недоступен. Просмотрите следующий URL и сделайте убедитесь, что он написан правильно.
Запрошенный URL: / 1
Вот действия, которым соответствуют эти маршруты:
public ActionResult Index3(int? id)
{
Product myProduct = new Product
{
ProductID = 1,
Name = "Product 1 - Index 3",
Description = "A boat for one person",
Category = "Watersports",
Price = 275M
};
Product myProduct2 = new Product
{
ProductID = 2,
Name = "Product 2 - Index 3",
Description = "A boat for one person",
Category = "Watersports",
Price = 275M
};
ViewBag.ProcessingTime = DateTime.Now.ToShortTimeString();
if (id == 1)
return View("index", myProduct);
else
return View("index", myProduct2);
}
Как мне структурировать свои маршруты так, чтобы все три метода действий выполнялись правильно?