Добавить CSS ссылку на HTML метода расширения HtmlHelper - PullRequest
0 голосов
/ 21 января 2019

У меня есть метод расширения HtmlHelper, как показано ниже.Он возвращает экземпляр PagedList.Mvc.HtmlHelper.PagedListPager.

. В PagedListRenderOptions указаны некоторые классы css.Каждое представление, которое использует этот метод, должно добавить ссылку на файл CSS, содержащий стили.Я нахожу это повторяющимся и избыточным.

Есть ли способ, которым я мог бы добавить CSS к экземпляру MvcHtmlString, который возвращается сюда?

public static MvcHtmlString PagedListPagerCustom(this HtmlHelper helper, UrlHelper Url, PagedList.IPagedList pager)
{
    return PagedList.Mvc.HtmlHelper.PagedListPager(
        helper,
        pager,
        page =>
        {
            return Url.Action("Inspection", "Operation", new { page = page, pageList = true });
        },
        new PagedList.Mvc.PagedListRenderOptions()
        {
            LiElementClasses = new List<string> { "pagerLiElement" },
            ContainerDivClasses = new List<string> { },
            UlElementClasses = new List<string> { "pagerUlElementClasses" },
            DisplayPageCountAndCurrentLocation = false,
            DisplayLinkToFirstPage = PagedList.Mvc.PagedListDisplayMode.Always,
            DisplayLinkToLastPage = PagedList.Mvc.PagedListDisplayMode.Always,
            DisplayLinkToNextPage = PagedList.Mvc.PagedListDisplayMode.Always,
            DisplayLinkToPreviousPage = PagedList.Mvc.PagedListDisplayMode.Always,
            Display = PagedList.Mvc.PagedListDisplayMode.IfNeeded,
            LinkToLastPageFormat = "Last",
            LinkToNextPageFormat = "Next",
            LinkToPreviousPageFormat = "Prev",
            LinkToFirstPageFormat = "1st",
            DisplayEllipsesWhenNotShowingAllPageNumbers = true,
            MaximumPageNumbersToDisplay = 5,
            DisplayLinkToIndividualPages = true,
            ClassToApplyToFirstListItemInPager = "pagerLiElementFirst",
            ClassToApplyToLastListItemInPager = "pagerLiElement",
        }
    );
}

Ссылка на CSS, которую я хочу добавить,:

<link href="~/Content/css/PageListCustom.css" rel="stylesheet">

1 Ответ

0 голосов
/ 21 января 2019

К сожалению, это не очень легко достичь.Тег CSS <link> должен находиться в разделе <head>, поскольку в документации W3C указано:

Этот элемент определяет ссылку.В отличие от A, он может появляться только в разделе HEAD документа, хотя может появляться любое количество раз.Хотя LINK не имеет содержимого, он передает информацию об отношениях, которая может быть представлена ​​пользовательскими агентами различными способами (например, панель инструментов с выпадающим меню ссылок).

Это означает, чтовы не можете просто вывести его как часть вашей строки HtmlHelper, потому что она будет использоваться в теле HTML-страницы.Вместо этого вы должны либо вручную добавить ссылку CSS в <head>, либо использовать inline <style> element , что, возможно, является менее чистым решением.

...