Question

J'ai mis en place un projet ASP.NET MVC et tout fonctionne très bien, mais j'ai un problème de routage. Mon Global.asax ressemble à ceci:

public static void RegisterRoutes(RouteCollection routes) {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

Donc, rien d’extraordinaire. Mon problème est que lorsque je lie un contrôleur / action / param avec un HTML.ActionLink comme ceci:

<%= Html.ActionLink("My link", "SomeAction", "SomeController", new {param="someParam"})%>

il devrait générer (du moins ce qui est logique dans ma tête) un lien tel que: http: //www.localhost/SomeController/SomeAction/someParam .

Mais au lieu de cela, il génère un lien comme celui-ci: http: // localhost / SomeController / SomeAction? param = someParam

Si je crée manuellement un lien qui renvoie au résultat attendu (SomeController / SomeAction / someParam), alors le contrôleur droit et l'action sont appelés, mais le paramètre défini dans la méthode action est toujours null.

Des idées?

Était-ce utile?

La solution

Je pense que ce lien utilisera uniquement la route par défaut comme vous le souhaitez si le nom du paramètre est id au lieu de param . Vous devrez créer un itinéraire différent si vous souhaitez y inclure un autre paramètre.

Autres conseils

essayez d'ajouter:

routes.MapRoute(
                    "Default",                                                                                              // Route name
                    "{controller}/{action}/{param}",                                                   // URL with parameters
                    new { controller = "Home", action = "Index", param = "" }  // Parameter defaults
            );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top