asp.net mvc Html.ActionLink () halten Route Wert Ich will nicht
Habe ich Folgendes ActionLink meiner Ansicht
<%= Html.ActionLink("LinkText", "Action", "Controller"); %>
und es wird folgender URL http://mywebsite.com/Controller/Action
Sagen, dass ich eine ID am Ende etwa so: http://mywebsite.com/Controller/Action/53 und navigieren Sie zu der Seite. Auf dieser Seite habe ich das markup habe ich oben angegeben. Nun wenn ich mir die URL, der es schafft, sieht es wie folgt aus:
http://mywebsite.com/Controller/Action/53 (beachten Sie die neben der ID)
Aber ich möchte es zu löschen, die ID und schauen Sie wie es war ursprünglich, wie dies http://mywebsite.com/Controller/Action (beachten Sie keine ID hier)
Irgendwelche Ideen, wie kann ich dieses Problem beheben? Ich will nicht zu hart codierte URLs, da mein controller/Aktionen ändern können.
InformationsquelleAutor der Frage codette | 2009-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung ist, um anzugeben, meinen eigenen Weg Werte (der Dritte parameter unten)
InformationsquelleAutor der Antwort codette
Es klingt wie Sie brauchen, um zu registrieren, eine zweite "Action only" Weg und verwenden Sie Html.RouteLink(). Registrieren Sie zunächst eine route wie diese in der Sie die Anwendung starten:
Dann statt ActionLink zum erstellen dieser links verwenden:
InformationsquelleAutor der Antwort Brian Cauthon
Das problem ist die eingebaute Methoden Eingabe von der URL, die Sie derzeit auf, wie auch, was Sie liefern. Sie könnten versuchen, diese:
Sollte manuell wischen Sie den id-parameter.
InformationsquelleAutor der Antwort Garry Shutler
Weiß nicht warum, aber es funktionierte nicht für mich (vielleicht wegen des Mvc2-RC). Erstellt urlhelper Methode =>
InformationsquelleAutor der Antwort Arnis Lapsa
Wenn Sie wissen entweder nicht, welche Werte müssen ausdrücklich überschrieben werden oder Sie wollen einfach nur, um zu vermeiden, die zusätzliche Liste der Parameter, die Sie verwenden können, eine Erweiterung Methode wie die unten.
Details der Implementierung sind in diesem blog-post
InformationsquelleAutor der Antwort Steve Greatrex
Ich explizit gesetzt, wird die Aktion als "Aktion/". Scheint ein wenig wie ein hack, aber es ist eine schnelle Lösung.
InformationsquelleAutor der Antwort BorgRebel
Andere Möglichkeit ist die Verwendung von ActionLink(HtmlHelper, String, String, RouteValueDictionary) überlast -, dann gibt es keine Notwendigkeit zu setzen null in der letzten parameter
InformationsquelleAutor der Antwort Murilo Lima
Brauchte ich meine Menü-links dynamisch zu sein. Eher als die Umsetzung eine Menge zusätzlichen code und routing für jede einzelne Seite, die ich einfach verzichtet mit der HTML-helper.
InformationsquelleAutor der Antwort nuander
Den überladungen von Html.ActionLink geändert werden, auf den neueren Versionen von MVC. Auf MVC 5 und höher. Dies ist, wie Sie dies tun:
Hinweis, dass ich bestanden "" für den parameter id und null für HTMLATTRIBUTES.
InformationsquelleAutor der Antwort yogihosting