Comment réparer une erreur 404 avec des routes dans ASP.NET MVC?

Je vais avoir un problème en essayant d'obtenir de routage de travailler avec ASP.NET MVC 3.0. J'ai les itinéraires suivants déclaré:

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 }
);
}

Lorsque je visite:

http://localhost

Le site fonctionne correctement, et il semble frappé Default route.

Lorsque je visite:

http://localhost/1

J'obtiens une erreur 404:

Erreur de serveur dans l'Application'/'.

La ressource ne peut pas être trouvé.
Description: HTTP 404. La ressource que vous recherchez (ou une de ses dépendances) peut avoir été supprimée, que son nom ait changé ou est
temporairement indisponible. Veuillez consulter l'URL suivante et de faire
assurez-vous qu'il est correctement orthographié.

URL demandée: /1

Ici sont les actions de ces routes correspondent à:

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);
}

Comment puis-je structure mes itinéraires de sorte que tous trois méthodes d'action sont frapper correctement?

OriginalL'auteur Stiger | 2012-01-05

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *