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

War es hilfreich?

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
)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top