generierung von Masterseiten-Links falsch - s # arp-Architektur
-
12-12-2019 - |
Frage
Ich verwende s # arp architecture 2.0 mit asp.net mvc 3.0.Der Razor-Code auf einer Masterseite sieht folgendermaßen aus:
@Html.ActionLink("Logout", "LogOff", "Users", new { style = "color:Blue;" })
Aus irgendeinem Grund erzeugt die App nicht mehr den richtigen Link (zur Aktion Abmelden von Controller-Benutzern), sondern verweist auf den aktuellen Controller für die Aktion Abmelden.Ich habe nichts geändert.wo muss ich graben, um das bitte zu überwinden?
Der generierte Link sieht folgendermaßen aus:
Aktueller controllerName / Abmelden?Länge = 5
Lösung
Du rufst an falsche Überlastung des ActionLink-Helfers.Hier ist, was Sie tun:
@Html.ActionLink(
"Logout", // linkText
"LogOff", // actionName
"Users", // routeValues
new { style = "color:Blue;" } // htmlAttributes
)
Es ist ziemlich offensichtlich, warum dies nicht die richtige URL erzeugt.Du bist vorbeigegangen "Users"
welches ist ein Zeichenfolgenwert an der Stelle, an der der Helfer erwartet routeValues
welches ein anonymes Objekt darstellen muss.
Der überlastung korrigieren is:
@Html.ActionLink(
"Logout", // linkText
"LogOff", // actionName
"Users", // controllerName
null, // routeValues
new { style = "color:Blue;" } // htmlAttributes
)