Ich erstellte eine einfache Erweiterungsmethode für den ASP.NET MVC UrlHelper. Es benötigt keine Argumente, da es Aufgabe ist, den Namen einer Stylesheet-Datei aus der Konfiguration nachzuschlagen und eine URL an das Stylesheet zurückzugeben. Die Erweiterung Methode sieht etwa wie folgt aus:UrlHelper-Erweiterung-Methode Aufruf codiert nicht ausgeführt
public static string SiteStylesheet(this UrlHelper urlHelper)
{
var scriptFilename = UserInterfaceConfiguration.GetSection()
.Mvc.SiteStylesheet;
return urlHelper.Content(string.Format("~/Assets/Scripts/{0}",
scriptFilename));
}
Und ich benutze es wie folgt aus:
<link href="<%= Url.SiteStylesheet() %>" rel="Stylesheet" type="text/css" />
Verfahren erhalten jedoch nicht ausgeführt, und folgendes gemacht:
href="../Views/Shared/%3C%25=%20Url.SiteStylesheet()%20%25%3E"
Wie Sie sehen können, wird die Erweiterungsmethode nicht ausgeführt, sondern das ganze Ding wird nur codiert. Wenn ich die Methode Signatur ändern, um einen Parameter zu übernehmen:
public static string SiteStylesheet(this UrlHelper urlHelper, string dummy)
dann wird die Erweiterung Methode ausgeführt und die Ausgabe wie erwartet:
href="/Assets/Stylesheets/FluidCMS.css"
Also meine Frage ist durch Design oder ist dies ein Fehler in der ASP.NET MVC Web Form-Ansichts-Engine?
Danke, aber der Namespace, der meine Erweiterungsmethode enthält, ist in der web.config und ich sehe immer noch das gleiche Verhalten. – user93255
Danke, fiel in diesen selbst. Habe auch nicht gemerkt, dass es 2 web.configs gibt –