将CSS链接添加到HtmlHelper扩展方法的HTML

时间:2019-01-21 06:24:30

标签: c# asp.net html-helper pagedlist urlhelper

我有一个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 :(得分:1)

不幸的是,这并不是很容易实现。 CSS <link>标签必须在W3C documentation指定的<head>部分中。

  

此元素定义一个链接。与A不同,它可能只出现在文档的HEAD部分中,尽管它可以出现很多次。尽管LINK没有内容,但它传达的关系信息可能由用户代理以多种方式呈现(例如,带有下拉菜单的链接的工具栏)。

这意味着您不能仅将其作为HtmlHelper字符串的一部分输出,因为它将在HTML页面的正文中使用。您必须改为手动将CSS链接添加到<head>或使用inline <style> element,这可以说是不太干净的解决方案。