J'ai créé une méthode d'extension simple pour ASP.NET MVC UrlHelper. Il ne prend aucun argument car son travail consiste à rechercher le nom d'un fichier de feuille de style à partir de la configuration et à renvoyer une URL à la feuille de style. La méthode d'extension ressemble à peu près comme ceci:UrlHelper méthode d'extension appel codé non exécuté
public static string SiteStylesheet(this UrlHelper urlHelper)
{
var scriptFilename = UserInterfaceConfiguration.GetSection()
.Mvc.SiteStylesheet;
return urlHelper.Content(string.Format("~/Assets/Scripts/{0}",
scriptFilename));
}
et je l'utilise comme ceci:
<link href="<%= Url.SiteStylesheet() %>" rel="Stylesheet" type="text/css" />
La méthode ne soit pas exécutée, cependant, et ce qui suit est rendu:
href="../Views/Shared/%3C%25=%20Url.SiteStylesheet()%20%25%3E"
Comme vous pouvez le voir, la méthode d'extension n'est pas exécutée, mais le tout est simplement codé. Si je change la signature de la méthode d'accepter un paramètre:
public static string SiteStylesheet(this UrlHelper urlHelper, string dummy)
alors la méthode d'extension est exécutée et la sortie est comme prévu:
href="/Assets/Stylesheets/FluidCMS.css"
Donc, ma question est alors ce par la conception ou est-ce un bug dans le moteur de vue ASP.NET MVC Web Form?
Merci, mais l'espace de noms qui contient ma méthode d'extension est dans le web.config et je vois toujours le même comportement. – user93255
Merci, est tombé dans celui-ci moi-même. Aussi n'avait pas remarqué qu'il y a 2 web.configs –