Url.Content() funktioniert nicht auf komplexe URLs

Habe ich Url.Content() snippets überall in meinen Ansichten. Sie funktioniert auf Seiten mit einem einfachen URL, aber 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 bin auf die homepage oder eine Seite mit der URL localhost:8080/s/chocolate (zeigt das Ergebnis für die "Schokolade" gesucht.

Aber wenn ich versuche, fügen Sie einige Verfeinerungen, z.B. localhost:8080/s/chocolate/b/lindt (was bedeutet, dass filter der vorherigen Ergebnisse, um nur diejenigen von der Marke Lindt), es funktioniert nicht mehr. In diesem Fall Url.Content Punkte zu /s/chocolate/Content/Images/logo.png, was natürlich fehlschlägt.

Es ist, als wenn Url.Content geht nur 2 Ebenen, bis die aktuelle Position, anstatt die eigentliche Wurzel der web-Anwendung. Ich denke es macht Sinn in die Konvention, dass die URLs sind in der form - host/- controller/action -, aber hier habe ich ein komplexer URL-Schema (ich benutze URL-rewriter-Modul zur URL-Fragmente, Aktion, Parameter).

Gibt es eine Möglichkeit zu sagen, die Helfer zu gehen, um den echten root, oder eine andere Lösung zu diesem problem?

(BTW, ich bin mit MVC 4)


EDIT:
Als Felipe antwortete, ich habe gerade entdeckt, dass die Url.Inhalt ist nicht mehr notwendig mit MVC 4. Das funktioniert für alle "design" - Bilder mit einem Konstanten Weg. Jedoch, ich benutze eine Menge Bilder, wo der Pfad konstruiert wird, zum Teil mit einigen Daten, wie z.B.

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

Habe ich einfach entfernt die Url.Inhalte, die als solche:

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

Gerendert, das gibt die folgende src: ~/Content/Images/stores_v2/Fr_SimplyMarket.png. Die ~ noch hier ist, wird das Bild nicht gefunden. Wie kann ich das beheben?

InformationsquelleAutor Antoine | 2013-07-08

Schreibe einen Kommentar