代码之家  ›  专栏  ›  技术社区  ›  pnizzle

将css链接添加到htmlhelper扩展方法的html

  •  0
  • pnizzle  · 技术社区  · 5 年前

    我有一个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 回复  |  直到 5 年前
        1
  •  1
  •   Martin Zikmund    5 年前

    不幸的是,这并不容易实现。CSS <link> 标记必须在 <head> 截面作为 W3C documentation 指定:

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

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