8 Stimmen

Verwendung von Url.Content in ASP.net MVC 2.0

Ich habe eine Menge von Beispielen mit Url.Content gesehen, um Javascript, Formular MasterPages in MVC 2 verweisen.

    <script src="<%: Url.Content("~/Scripts/jquery-1.4.1.min.js") %>" type="text/javascript"></script>

Aber zur Laufzeit habe ich einen Fehler,

Kompilierungsfehler Beschreibung: Bei der Kompilierung einer Ressource, die zur Bearbeitung dieser Anfrage erforderlich ist, ist ein Fehler aufgetreten. Bitte überprüfen Sie die folgenden spezifischen Fehlerdetails und ändern Sie Ihren Quellcode entsprechend.

Compiler-Fehlermeldung: CS0103: Der Name 'Url' existiert im aktuellen Kontext nicht.

Ich habe nicht finden, wo Url-Namespace deklariert ist, sollten zusätzliche Baugruppen verwendet werden?

VS2010, IIS 7, ASP.net MVC 2.0

8voto

Erik Punkte 814

Stellen Sie sicher, dass Ihre Masterseite System.Web.Mvc.ViewMasterPage erbt.

2voto

jim tollan Punkte 22065

Alex,

Versuchen Sie, die folgende Erweiterungsmethode hinzuzufügen, und sehen Sie, ob Sie damit weiterkommen

public static partial class HtmlHelperExtensions
{
    public static string Script(this HtmlHelper html, string path)
    {
        var filePath = VirtualPathUtility.ToAbsolute(path);
        HttpContextBase context = html.ViewContext.HttpContext;
        // don't add the file if it's already there
        if (context.Items.Contains(filePath))
            return "";
        return "<script type=\"text/javascript\" src=\"" + filePath + "\"></script>";
    }
}

Verwendung:

<%=Html.Script("~/Scripts/jquery-1.4.2.min.js")%>

Ich weiß, dass dies keine direkte Antwort auf Ihre Frage ist, aber es wird Ihnen ermöglichen, voranzukommen...

1voto

awrigley Punkte 13241

Die Bearbeitung wurde entfernt, da einfache Anführungszeichen als Zeichenliteral behandelt werden, was zu einem Fehler "zu viele Zeichen im Literal" führt. Die wahrscheinlichste Ursache ist immer noch ein Tippfehler, IMHO.

ORIGINAL POST (gilt immer noch für die UrlHelper-Klasse):

Url.Inhalt(): Url ist hier eine Hilfsmethode, ähnlich wie die Html- oder Ajax-Helfer.

Ich glaube, die Klasse ist im Code:

System.Web.Mvc.UrlHelper

D.h., der Namespace ist System.Web.Mvc.

Es ist also sehr merkwürdig, dass Sie es nicht einfach verwenden können, wenn Sie wirklich die oben beschriebene Spezifikation verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X