Ryan
Ryan

Reputation: 1791

How to use MapRoute, using ActionLink()?

I have this route values inside Global.asax

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

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

and I use this ActionLink method to call the Edit route

@Html.ActionLink("Edit", "Topic", "Edit", new { id = item.ID })

Now the result of the link generated is like this...

http://localhost:777/Admin/Topic?Length=4

How to use the route and target properly using the ActionLink method.

Thanks!

Upvotes: 0

Views: 1302

Answers (1)

CD Smith
CD Smith

Reputation: 6607

Use the correct overload of ActionLink to get the intended result

@Html.ActionLink("Edit", "Topic", "Edit", new { id = item.ID }, null)

The overload is ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)

Adding the null as null HTML attributes is necessary when you supply parameters to the action. Or if you actually needed to apply HTML Attributes to the link, you would use:

@Html.ActionLink("Edit", "Topic", "Edit", new { id = item.ID }, new { @class = "MyCustomCssClassName" } )

Upvotes: 3

Related Questions