Вопрос

Here's my simple actionlink:

<span>@Html.ActionLink(trip.TripDescription, "Index", "Home", new { trip = trip.Trpp, year = trip.TripYear })</span>

Here is my route for that link:

routes.MapRoute(
                "Index",
                "{controller}/{action}/{trip}/{year}",
                new { controller = "Home", action = "Index", trip = "", year = "" }
            );

and here is what is being rendered:

http://localhost:31065/Home/Index?trip=Green&year=2013

I'd like for it to render this instead:

http://localhost:31065/Home/Index/Green/2013

both of those urls work, but cosmetically I'd prefer the latter.

what do I need to change to have the parameters go behind slashes instead of using the old school ? and &

TIA

Это было полезно?

Решение

It looks as though your Index route is never being hit, probably due to some other route defined before. Always keep your most specific route definitions first and leave the default Controller/Action/Id to be defined last.

routes.MapRoute(
    "Index",
    "{controller}/{action}/{trip}/{year}",
    new { controller = "Home", action = "Index" }
);

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Default", action = "Index", id = UrlParameter.Optional }
);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top