1 votes

Asp.Net Mvc RouteData est rempli avec de mauvais paramètres

routes .Add ("Detail",
                new Route ("{maincategory}/{category}",
                          new RouteValueDictionary (new { controller = "Category", action = "Detail"}),
                          new RouteValueDictionary (new { category = new FromValuesListConstraint ("")}),
                          new MyRouteHandler ()));

        routes.Add("Category",
                new Route("{category}",
                          new RouteValueDictionary(new { controller = "Category", action = "Index", category = "" }),
                          new RouteValueDictionary(new { category = new FromValuesListConstraint("") }),
                          new MyRouteHandler()));

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults

        );

Mes itinéraires sont comme ceci. Mais lorsque je lance le site web, la page d'accueil s'affiche. Après l'affichage de la page d'accueil, quelque chose se passe et une nouvelle quête est faite (je ne sais pas pourquoi). Je surcharge le MvcRouteHandler et y place un point d'arrêt.

public class MyRouteHandler : MvcRouteHandler
{
    protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        var url = HttpContext.Current.Request.RawUrl;
        var route = requestContext.RouteData;  
        return new MvcHandler(requestContext);
    }
}

La variable url est /Content/Divider.gif. A cause de cela, après l'affichage de la page d'accueil, l'application donne une erreur. J'ai tout essayé pour comprendre le problème en tant qu'utilisateur novice de mvc, mais je n'ai rien trouvé.

Merci !

1voto

Garry Shutler Points 20898

Le fichier /Content/Divider.gif existe-t-il sur votre site web ?

Il est probable qu'il essaie de l'exécuter en tant que route parce que le fichier n'existe pas et que c'est la source de votre problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X