Я создал простой метод расширения для ASP.NET MVC UrlHelper. Он не принимает никаких аргументов, поскольку его задачей является поиск имени файла таблицы стилей из конфигурации и возврат URL-адреса в таблицу стилей. Метод расширения выглядит примерно так:Метод расширения URL-адреса UrlHelper не выполнен
public static string SiteStylesheet(this UrlHelper urlHelper)
{
var scriptFilename = UserInterfaceConfiguration.GetSection()
.Mvc.SiteStylesheet;
return urlHelper.Content(string.Format("~/Assets/Scripts/{0}",
scriptFilename));
}
И я использую это так:
<link href="<%= Url.SiteStylesheet() %>" rel="Stylesheet" type="text/css" />
метод не получает казнены, однако, и следующее визуализируется:
href="../Views/Shared/%3C%25=%20Url.SiteStylesheet()%20%25%3E"
Как вы видите, метод расширения не выполняется, а вся вещь просто закодирована. Если изменить подпись метода принять параметр:
public static string SiteStylesheet(this UrlHelper urlHelper, string dummy)
то метод расширения выполняется, и выход, как ожидается:
href="/Assets/Stylesheets/FluidCMS.css"
Так что мой вопрос, то это дизайн или это ошибка в механизме просмотра ASP.NET MVC Web Form?
Спасибо, но пространство имен, которое содержит мой метод расширения, находится в файле web.config, и я все еще вижу такое же поведение. – user93255
Спасибо, упал в этот сам. Также не заметил, что есть 2 web.configs –