Url.Content () funktioniert nicht bei komplexen URLs

ich habeUrl.Content() Schnipsel überall in meinen Ansichten. Sie funktionieren problemlos auf Seiten mit einer einfachen URL, jedoch nicht, wenn die URL länger wird.

Hier ist ein Beispiel:

<img src="@Url.Content("~/Content/Images/logo.png")" id="logo">

Dies funktioniert gut, wenn ich auf der Homepage bin oder eine Seite mit URLlocalhost:8080/s/chocolate (das zeigt das Ergebnis für die "Schokolade" Suche.

Aber wenn ich versuche, einige Verfeinerungen hinzuzufügen, z.localhost:8080/s/chocolate/b/lindt (was bedeutet, die vorherigen Ergebnisse nur nach denen der Marke Lindt zu filtern), es funktioniert nicht mehr. In diesem Fall,Url.Content verweist auf/s/chocolate/Content/Images/logo.png, was offensichtlich fehlschlägt.

Es ist als obUrl.Content Geht nur 2 Ebenen über den aktuellen Standort, anstatt das echte Stammverzeichnis der Web-App zu verwenden. Ich denke, es macht Sinn in der Konvention, dass URLs in der Form sindHost / Controller / Aktion, aber hier habe ich ein komplexeres URL-Schema (ich verwende das URL-Umschreibemodul, um diese URL-Fragmente mit den Aktionsparametern abzugleichen).

Gibt es eine Möglichkeit, dem Helfer mitzuteilen, dass er zur eigentlichen Wurzel gehen soll, oder eine andere Lösung für dieses Problem?

(Übrigens benutze ich MVC 4)

BEARBEITEN: Wie Felipe antwortete, habe ich gerade festgestellt, dass Url.Content mit MVC 4 nicht mehr erforderlich ist. Das funktioniert für alle "Design" -Bilder mit einem konstanten Pfad. Ich verwende jedoch viele Bilder, bei denen der Pfad teilweise mit einigen Daten aufgebaut ist, z.

<img src="@Url.Content(string.Format("~/Content/Images/stores/{0}.png", cart.Store.Retailer.Id))"/>

Ich habe den Url.-Inhalt einfach entfernt:

<img src="@string.Format("~/Content/Images/stores/{0}.png", Model.PreferedCart.Store.Retailer.Id)"/>

Beim Rendern ergibt dies den folgenden Quellcode:~/Content/Images/stores_v2/Fr_SimplyMarket.png. Das~ Wenn Sie noch hier sind, wird das Bild nicht gefunden. Wie kann ich das beheben?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage