2009-08-07 12 views
0

Ich bin auf der Startseite:Asp.Net MVC Action Spezifische Href

http://localhost/ 

http://localhost/Home (yeah, this one too, though I don't like it) 

ich eine foreach-Schleife haben, durch meine Kategorien Looping. Ich möchte die Html.ActionLink zeigen:

http://localhost/site/{category-name} 

ich derzeit haben:

Html.ActionLink(cat.cat_name, "site", "", new { id = cat.cat_name}, null) 

Dies weist auf:

http://localhost/Home/site/{cat_name} 

Ich möchte der Startseite loszuwerden.

EDIT

Egal, welche Seite ich bin, möchte ich den Link zu verweisen:

http://localhost/site/{category-name} 
+1

Nicht sicher, ich folge der Frage 100%, aber es sieht so aus, als ob Sie die Standardroute und den Home-Controller verwenden? Wenn dies der Fall ist, möchten Sie Ihre Route und/oder den von Ihnen verwendeten Controller ändern. – YetAnotherDeveloper

+0

@YetAnotherDeveloper - Post dies als eine Antwort, weil das Betrachten der Routen zeigte mir in die richtige Richtung. Vielen Dank! – Martin

Antwort

2

nicht sicher, ob ich die Frage 100% folgen, aber es sieht aus wie Sie die Standardroute und die Heimat-Controller verwenden? Wenn dies der Fall ist, möchten Sie Ihre Route und/oder den von Ihnen verwendeten Controller ändern.

0

Verstanden. Es wurde eine neue Route:

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

Action:

<%= Html.ActionLink(cat.cat_name, "index", new {controller = "Site", action = "index", id = cat.cat_name}) %> 

nicht sicher, warum ich brauche die "Index", aber es funktioniert.

1

Sie brauchen keine bestimmte Route. Verwenden Sie einfach string HtmlHelper.RouteLink(string linkText, object routeValues) Helfer:

<%= Html.RouteLink(cat.cat_name, 
    new { controller = "Site", action = "Index", id = cat.cat_name }) %> 
Verwandte Themen