Bart
Bart

Reputation: 4920

Html.ActionLink asp.net-MVC

I have companycontroller, index view and I need to create a link to dispaly all contacts for this company,

this is working but YUK, How can Refactor this:

  <%: Html.ActionLink("Contacts", "Index/" + item.CompanyID, "Contacts")%>  

thanks

Upvotes: 0

Views: 155

Answers (2)

Darin Dimitrov
Darin Dimitrov

Reputation: 1038710

Assuming you are using the default routes:

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

    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

If you need to specify the controller name try this (don't forget the last parameter - the html attributes which I am passing to null here):

<%: Html.ActionLink("Contacts", "Index", "Contacts", new { id = item.CompanyID }, null) %>

or without specifying the controller (using the current controller):

<%: Html.ActionLink("Contacts", "Index", new { id = item.CompanyID }) %>

Upvotes: 2

John Farrell
John Farrell

Reputation: 24754

Thats pretty... different...

Normally it would be:

<%: Html.ActionLink("Contacts", "Index", "Contacts", new { item.CompanyID } )%>

with the last parameter being a anonymous object which gets translated into a routevalue dictionary.

Upvotes: 0

Related Questions