c# - 将css链接添加到HtmlHelper扩展方法的HTML
问题描述
我有一个 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">
解决方案
不幸的是,这并不容易实现。CSS<link>
标记必须在W3C 文档指定的<head>
部分中:
该元素定义了一个链接。与 A 不同,它可能只出现在文档的 HEAD 部分,尽管它可能出现多次。虽然 LINK 没有内容,但它传达了用户代理可以通过多种方式呈现的关系信息(例如,带有链接下拉菜单的工具栏)。
这意味着您不能只将其作为HtmlHelper
字符串的一部分输出,因为它将在 HTML 页面的正文中使用。您必须改为手动将 CSS 链接添加到<head>
或使用可以说是不太干净的解决方案的内联<style>
元素。
推荐阅读
- html - 为什么图像显示在 chrome 上但不在 Firefox 中?
- javascript - Webpack 无法解析依赖
- aws-event-bridge - Amazon EventBridge - 如何衡量不匹配的事件?
- nested-for-loop - 有没有办法遍历子列表并返回特定值?
- angular8 - 在角度 8 中选择了不工作的选项
- aws-event-bridge - Eventbridge 不匹配事件
- wordpress - 在 wordpress 仪表板中编辑自定义用户元数据
- javascript - 有没有比这更好的使用 vanilla JavaScript 创建选项卡的方法?
- database - 使用 DBGEN 生成 TPCH 数据集时,是否可以将比例因子设置为手册中未列出的值?
- linq - EF Core 派生的 DbContext 未列出 DbSet